实践证明,使用平方根运算将耗费很多的运行时间。比如:宁可使用语句If a * a + b * b = 4 Then ...,而不要使用达到同等目的的命令If Sqr(a * a + b * b) = 2
Then ...。
● 用C++或者Delphi重新编写程序
虽然这个建议听起来很罕见,但为了达到更高的速度与性能,恐怕这是最终的解决方案。
● 升级到Visual Basic版本5或者6
本地编译的可执行程序在速度上要比C++或者Delphi慢许多,但是这要比Visual Basic版本4上的非编译程序快很多。
● 剖析应用程序
请使用性能监视器软件精确地了解程序在哪里花费大量的运行时间。Visual Basic版本4和5就自带一个这样的工具,Visual Basic版本6的企业版中也有。不要在运行已经足
够快的代码上耗费时间进行优化。
● 使用非压缩图形文件
设置表单或者图形框上的图形属性为.bmp文件,而不要是压缩的JPEG或者GIF文件。后者是按照压缩格式存放的,程序必须要进行解压缩的工作才能显示它们。
● 预装入表单
当程序启动时,装载所有要使用的表单到内存。这样,当需要使用它们时,就可以很快的显示出来。
● 使用数组代替集合
使用数组操作非常快。只有当需要特殊的功能比如查找关键字时,再使用集合。
● 预分配数组大小
尽可能大的分配好数组的尺寸,这样随后就不需要使用ReDim重新定义它的长度。
● 快速初始化数组
如果需要设置数组的所有项目为0,请使用ReDim命令重新分配大小来达到效果。这虽然会浪费一些空间,但却能大大地提高速度。
● 快速拷贝数组
不要使用循环来在数组间进行拷贝工作,请使用更快的API函数:MemCopy或者RtlMoveMemory。
● 使用明确的数据类型
除非必要,请不要使用Variants数据类型定义变量,而要定义明确的数据类型,比如string、char。
● 单独定义和分配对象
定义对象和分配数值可以使用联合语句:Dim obj As New MyClass。但是这要比以下2个单独的语句运行速度慢:
Dim obj As MyClass
Set obj = New MyClass
● 尽可能地使用整型操作符
比如:为了表示除法运算,请使用,而不是/。
● 尽可能不要使用平方根运算
实践证明,使用平方根运算将耗费很多的运行时间。比如:宁可使用语句If a * a + b * b = 4 Then ...,而不要使用达到同等目的的命令If Sqr(a * a + b * b) = 2
Then ...。
● 用C++或者Delphi重新编写程序
虽然这个建议听起来很罕见,但为了达到更高的速度与性能,恐怕这是最终的解决方案。
● 升级到Visual Basic版本5或者6
本地编译的可执行程序在速度上要比C++或者Delphi慢许多,但是这要比Visual Basic版本4上的非编译程序快很多。
● 剖析应用程序
请使用性能监视器软件精确地了解程序在哪里花费大量的运行时间。Visual Basic版本4和5就自带一个这样的工具,Visual Basic版本6的企业版中也有。不要在运行已经足
够快的代码上耗费时间进行优化。
● 使用非压缩图形文件
设置表单或者图形框上的图形属性为.bmp文件,而不要是压缩的JPEG或者GIF文件。后者是按照压缩格式存放的,程序必须要进行解压缩的工作才能显示它们。
● 预装入表单
当程序启动时,装载所有要使用的表单到内存。这样,当需要使用它们时,就可以很快的显示出来。
● 使用数组代替集合
使用数组操作非常快。只有当需要特殊的功能比如查找关键字时,再使用集合。
● 预分配数组大小
尽可能大的分配好数组的尺寸,这样随后就不需要使用ReDim重新定义它的长度。
● 快速初始化数组
如果需要设置数组的所有项目为0,请使用ReDim命令重新分配大小来达到效果。这虽然会浪费一些空间,但却能大大地提高速度。
● 快速拷贝数组
不要使用循环来在数组间进行拷贝工作,请使用更快的API函数:MemCopy或者RtlMoveMemory。
● 使用明确的数据类型
除非必要,请不要使用Variants数据类型定义变量,而要定义明确的数据类型,比如string、char。
● 单独定义和分配对象
定义对象和分配数值可以使用联合语句:Dim obj As New MyClass。但是这要比以下2个单独的语句运行速度慢:
Dim obj As MyClass
Set obj = New MyClass
● 尽可能地使用整型操作符
比如:为了表示除法运算,请使用,而不是/。