如何对自己的VB某段代码测试运行时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何对自己的VB某段代码测试运行时间相关的知识,希望对你有一定的参考价值。

要求精确到毫秒,并提供实例代码,谢谢

加一timer控件,interval属性设为1,enabled设为false.设一全局变量L as long(如果不行就改为double)
在程序开始的时候加一句timer1.enabled=true,在timer1事件中写上L=L+1.
在程序结束时print L,
L的值就是你这段代码运行所花费的时间(单位:毫秒)。
参考技术A Private Sub Command1_Click()
Dim a As Currency, i As Long

a = Timer '开始计时

For i = 1 To 1000000
DoEvents
Next

a = Timer - a '计时结束

Print a

End Sub

精度1毫秒若还需要更高的精度
就需要用API我有个delphi的例程你不妨参考一下

//取系统级时间精度:
var
c1:int64;
t1,t2:int64;
r1:double;
begin
queryperformancefrequency(c1);//windows api 返回计数频率(intel86:1193180)(获得系统的高性能频率计数器在一毫秒内的震动次数)
queryperformancecounter(t1);//windows api 获取开始计数值
sleep(1000);do...//执行要计时的代码
queryperformancecounter(t2);//获取结束计数值
r1:=(t2-t1)/c1;//取得计时时间,单位秒(s)
r1:=(t2-t1)/c1*1000;//取得计时时间,单位毫秒(ms)
r1:=(t2-t1)/c1*1000000;//取得计时时间,单位微秒
showmessage(floattostr(r1));
end;

如何在 Hudson 中运行 VB6 项目?

【中文标题】如何在 Hudson 中运行 VB6 项目?【英文标题】:How do I run a VB6 project within Hudson? 【发布时间】:2011-03-20 05:41:32 【问题描述】:

我想从命令行运行该组,而不是构建一个完整的项目组(几个 DLL 和一个可执行文件),如下所示: VB6 /runexit project

它消除了编译步骤并保持注册表清洁。

我可以设置一个从源代码管理获取最新代码并运行命令行的 Hudson 作业。我遇到的问题是目标程序在中途挂断。我可以通过 Hudson Web 界面中止它。

发生了什么?

【问题讨论】:

【参考方案1】:

这里遇到的实际问题是 VB6 会在注册表中查找它的一些系统设置。当您自己运行项目时,VB 会从您的用户那里获取设置。当 Hudson 作为服务运行时,它以本地系统登录,它有自己的注册表设置。

此处相关的 VB6 设置是 Options/ErrorTrapping。默认情况下,注册表包含“Break on All Errors”。有问题的项目需要“中断未处理的错误”。症状似乎是 VB6 在引发错误时锁定。

解决方案涉及从我的用户导出相关设置并将其导入本地系统。

有一个 answer 和一个 link 关于在本地系统下运行 regedit,但我的答案是使用 Hudson 本身将 regedit 作为本地系统运行。还有一个关于vb6 ide设置的问题here。

    使用命令行窗口将 VB 设置从该键导出到如下文件:

    regedit /e vbide-1.reg "HKEY_CURRENT_USER\Software\Microsoft\VBA\Microsoft Visual Basic"

    在 Hudson 中创建一个新作业,该作业暂时不执行任何操作,但单击立即构建以创建作业文件夹。

    找到它创建的文件夹并将 vbide-1.reg 复制到那里的“工作区”文件夹中。

    配置 Hudson 作业以执行此 Windows 批处理命令:regedit /s vbide-1.reg

    再次单击立即构建,批处理命令应运行。在控制台输出中验证:...\workspace>regedit /s vbide-1.reg

    禁用构建,或者只是删除项目。

【讨论】:

由于设置错误编译时挂起,如果设置正确编译时出现编译错误怎么办?会不会也挂了?如果是这样,您应该寻找不同的解决方案。构建不允许挂起,不知道构建是否成功。 --- 另一个想法是local_system 帐户。这个帐户有很多权限。您应该考虑为您的 Hudson 实例创建一个特殊用户并以该用户身份运行服务。否则,可以在 Hudson 中配置作业的每个人都对您的 Hudson 服务器具有管理员权限。 好的,我会注意编译错误的事情。我现在只是在试验,所以权限现在无关紧要。

以上是关于如何对自己的VB某段代码测试运行时间的主要内容,如果未能解决你的问题,请参考以下文章

如何限制一个脚本可以运行某段代码的副本数?

Java:在某段代码上设置超时?

如何使用Python让某段程序固定在每天早上八点钟开始运行

无法在parrent表单中运行我自己创建的exe(vb.net)

如何从 VB.NET 运行 DOS/CMD/命令提示符命令?

C语言中有没有一种计时函数,能算出从程序中某段代码运行所花的时间?