用于VBScript性能测量的细粒度计时器
我正在VBScript中进行一些性能测量。我想测量我的算法执行得有多快用于VBScript性能测量的细粒度计时器
t1 = Now()
doAlotOfWork()
t2 = Now()
MsgBox "Operation took " & DateDiff ("s", t1, t2) & " seconds."
这给了我几秒钟的时间。如果一种算法产生1秒的执行时间,另一种算法在2秒内产生另一种算法,这几乎不会给我任何有用的信息。我需要将问题的规模扩大到需要一分钟才能执行的事情。
有没有人知道在VBScript中做这些测量的方法,但是更精细。例如引入毫秒的东西。
我有一种感觉,在WMI中必须有一个解决方案。
您可以使用VBScript Timer function获得所用时间(毫秒):
定时器函数返回的秒和毫秒数 ,因为 12:00 AM。
是的,就这么简单。我选择了“计时器”作为标记,但没有智慧来检查VBScript文档中是否有该名称的函数。 – mgr326639 2011-03-08 17:25:25
请注意,定时器功能的分辨率不完全是一毫秒。我找不到任何关于此的文档,但在我的Win7 64位计算机上进行实验时,分辨率为〜8ms。在工作上,在WinXP上,它大约是15毫秒。 – 2011-03-09 05:51:59
如果您在HP的QuickTest Pro的工作,这里有两个,你是提供方法:
定时器会给出一个结果(以毫秒为单位),您可以在一个变量
MercuryTimers("timerName").Start
Wait 2
Msgbox "Time is ticking..."
MercuryTimers("timerName").Stop
Msgbox "Elapsed time is: " & MercuryTimers("timerName").Elapsedtime & " milliseconds"
存储
交易时间在QTP结果显示/报告
Services.StartTransaction "transactionName"
Wait 2
Msgbox "Time is ticking..."
Services.EndTransaction "transactionName"
你需要在一个循环数百甚至数千的运行算法倍。这不仅可以补偿较低分辨率的计时器,还可以防止随机“噪音”混淆您的发现。 – 2011-03-08 10:08:16