TC官方合作论坛

标题: TC,怎样计算一个脚本执行完要多少时间。有API吗? [打印本页]

作者: 剑仙十号    时间: 2015-11-13 11:07
标题: TC,怎样计算一个脚本执行完要多少时间。有API吗?
TC,怎样计算一个脚本执行完要多少时间。有API吗?
作者: 剑仙十号    时间: 2015-11-13 11:12
TC怎样计算一个脚本执行完,要多少时间,有API吗?

例如要计算,按下,弹起a键1000次需要多少毫秒,怎样计算。
作者: 民工唐子    时间: 2015-11-13 13:19
用时间间隔法.开始运行的时候取当前时间,结束时计算2个时间差.代码比如.
  1. 功能 按键A()
  2.     变量 起始时间 = 当前时间()
  3.     //中间执行的代码
  4.     //代码结束
  5.     变量  花费时间 = 时间间隔("s",起始时间,当前时间())
  6.     调试输出("花费时间:"&花费时间)
  7. 结束
复制代码

作者: 剑仙十号    时间: 2015-11-13 13:30
民工唐子 发表于 2015-11-13 13:19
用时间间隔法.开始运行的时候取当前时间,结束时计算2个时间差.代码比如.

只能计算到秒,不能计算到毫秒数。
测试代码执行的效率,不精准。
作者: 剑仙十号    时间: 2015-11-13 13:32
例如:
TC,按键精灵最快的按键方法。一个脚本执行完要多少时间,在哪里看。
1楼. 新来贵吧,求解
回复
手鞠MI褉ap2 20:45
..
//全部命令,插件命令,Sys 系统插件。
//精准地计算毫秒时间差。版本1.
sTime1 = Plugin.Sys.GetTime()
For i = 1 To 1000 Step 1
KeyDown 65, 1
KeyUp 65, 1
Next
sTime2 = Plugin.Sys.GetTime()
TracePrint (sTime2 - sTime1)
//
//
//全部命令,基本命令,其它 命令。VBS执行块。
//精准地计算毫秒时间差。版本2.
sTime1 = Plugin.Sys.GetTime()
VBSBegin
For i = 1 To 1000 Step 1
KeyDown 65, 1
KeyUp 65, 1
Next
VBSEnd
sTime2 = Plugin.Sys.GetTime()
TracePrint (sTime2 - sTime1)

作者: 民工唐子    时间: 2015-11-13 13:54
你是要看TC,还是看按键哦.调试输出不就看到了?
作者: 剑仙十号    时间: 2015-11-13 16:39
民工唐子 发表于 2015-11-13 13:54
你是要看TC,还是看按键哦.调试输出不就看到了?

谢谢。

我问的问题,感觉有点刁难的。
上面的代码确实可以通过。但要求测试代码执行的效率,精确到几毫秒,就无法通过。
作者: 剑仙十号    时间: 2015-11-13 16:41
民工唐子 发表于 2015-11-13 13:54
你是要看TC,还是看按键哦.调试输出不就看到了?

你可以实测下5楼代码。
作者: luqinlong    时间: 2015-11-13 17:38
gettickcount()不是可以到毫秒吗?好像误差10多毫秒,难道你要微秒级别的吗
作者: luqinlong    时间: 2015-11-13 17:50
有个api是微秒级别的queryperformancecounter,但是用tc有个难度64位变量定义不了,用其他语言写个dll然后在条用dll里的方案可行度比较高
作者: 574221329    时间: 2015-11-13 18:40
就三楼的代码  换这个来算



作者: 剑仙十号    时间: 2015-11-13 18:56
luqinlong 发表于 2015-11-13 17:38
gettickcount()不是可以到毫秒吗?好像误差10多毫秒,难道你要微秒级别的吗 ...

用你的方法,已经测试成功。非常感谢。
TC论坛很有爱。

代码:
变量 t1 = 获取系统时间()
等待(99)
等待(100)
等待(101)
变量 t2 = 获取系统时间()
信息框(t2 - t1)




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1