我的试验用到了Timer(计时器)函数,它会返回自从午夜零点以来所走过时间的秒数。Timer所返回的值会精确到1/100秒。对于今天上G赫兹的处理器而言这已经算很长时间了,但是通过使用这个函数反复在循环里执行某个动作,你可以给某个动作的持续时间精确计时。
这段代码相对简单,它是基于下面的模型的:
t1 = Timer
For counter = 1 to SomeLargeValue
" Do a calculation here
Next
ElapsedTime = Timer - t1
下面就是我用来将Variant类型和Integer(整数)类型比较的代码。我首先运行代码,将变量s1和s2声明为Variant类型,然后再次将这些变量声明为Integer类型。类似的,我还会对浮点的划分进行Variant同Single的比较测试,为调用Mid函数而将Variant同String类型进行比较。
t1 = Timer
s1 = 12
Fori = 1 To 500000
s2 = s1 * 123
Next
ElapsedTime = Timer - t1
对于数值计算而言,其结果就和很多vb程序员所预计的一样:同使用Integer类型或者Single类型相比较,使用Variant类型会让运行慢60秒。但是,如果使用字符串数据的话,结果就出人意料了:Variant事实上要比String类型快,但是只快了6个百分点。
这是不是就意味着,你应该避免对数值使用Variant数据类型呢?不用——对于只需要进行有限计算的程序而言,这样的速度差从来都是无关紧要的。但是对于某些计算密集型的应用程序而言,例如数字造型或者统计分析程序,你就可能需要将Variant的使用限制到那些真正需要灵活性的场合了。
本文作者Peter Aitken:自从Visual Basic 1.0版以来,Peter Aitken就一直使用vb编程。他编写过很多关于VisualBasic以及其他计算机和编程的书以及杂志文章。