函数直写代码与创造子过程时间比较
函数直写代码与创建子过程时间比较
前几天在网上看到一篇关于提高VB代码运行速度的文章,说是代码少的话,直写代码比创建新的过程要用时短(因为调用过程很费时间)。一直深信不疑,直到最后有空做了这么个试验。
测试代码一:
测试代码二:
是否得出结论,网上那发言不对?
------解决思路----------------------
多任务环境下本来就测不准。
调用函数多消耗的些许CPU远远比不上Debug环境的消耗。
这证明不了什么。
------解决思路----------------------
这两段代码差不多,因为add函数只调用了一次,函数调用固然有开销,但是相对你的程序来说,这点开销微乎其微。
你要想看到差别,得这么写:
(1)
a = 0
for i = 1 to 1000000
add(a)
next
sub add(byref a)
a = a + 1
end sub
和
(2)
a = 0
for i = 1 to 1000000
a = a + 1
next
前几天在网上看到一篇关于提高VB代码运行速度的文章,说是代码少的话,直写代码比创建新的过程要用时短(因为调用过程很费时间)。一直深信不疑,直到最后有空做了这么个试验。
测试代码一:
Sub test()经测试运行平均时间2.5秒以上(就是3秒占多数)
Dim a, sum
Dim i, j
sum = 0
i = Time
For a = 1 To 50000000
sum = sum + a
Next
j = Time
MsgBox Format(j - i, "s")
End Sub
测试代码二:
Sub test2()经测试每次运行时间都为2秒。
Dim a, sum
Dim i, j
sum = 0
i = Time
Call add(a)
j = Time
MsgBox Format(j - i, "s")
End Sub
Sub add(a)
For a = 1 To 50000000
sum = sum + a
Next
End Sub
是否得出结论,网上那发言不对?
------解决思路----------------------
多任务环境下本来就测不准。
调用函数多消耗的些许CPU远远比不上Debug环境的消耗。
这证明不了什么。
------解决思路----------------------
这两段代码差不多,因为add函数只调用了一次,函数调用固然有开销,但是相对你的程序来说,这点开销微乎其微。
你要想看到差别,得这么写:
(1)
a = 0
for i = 1 to 1000000
add(a)
next
sub add(byref a)
a = a + 1
end sub
和
(2)
a = 0
for i = 1 to 1000000
a = a + 1
next