VisualBasic代码优化的六条军规

VisualBasic代码优化的六条军规,第1张

VisualBasic代码优化的六条军规,第2张

在许多优化程序代码大小的技术中,大多数都包括从代码中删除不必要的元素。编译应用程序时,visual basic会自动删除一些元素。但是,对于标识符名称、注释、空行的长度和数量没有限制。当应用程序作为。exe文件,这些元素不会影响应用程序占用的内存。其他元素,比如变量、表单、过程,确实占用了一部分内存空。精简他们,使他们更有效率。以下六种方法可以用来减少应用程序所需的内存和代码大小,希望对初学者有所帮助。

1.减少加载表单和控件的数量,用标签替换文本框。

每个加载的窗体,无论是否可见,都必须占用一定数量的内存(该数量因窗体上控件的类型和数量以及窗体上位图的大小而异)。只在需要显示的时候加载表单,不再需要的时候卸载(而不是隐藏)。请记住,对窗体的属性、方法或控件的任何引用,或者对用new声明的窗体变量的任何引用,都将导致visual basic加载窗体。

使用unload方法卸载窗体时,只能释放窗体占用的空空间的一部分。要释放all 空,可以使用关键字nothing使表单的引用无效:

Set form=nothing在设计应用程序时,窗体应该尽量少用控件。实际的限制取决于控件的类型和系统,但实际上,具有大量控件的窗体运行起来会很慢。一种相关的技术是在设计时尽可能多地使用控件数组,而不是在窗体上放置大量同类型的控件。数组是一组具有共同名称和类型的控件。它们的事件过程是相同的。在设计时,使用控件数组添加控件比直接向窗体添加多个相同类型的控件消耗更少的资源。当您希望多个控件共享代码时,控件数组也很有用。控件标签比文本框占用更少的windows资源,因此应该尽可能使用标签而不是文本框。例如,当表单上需要隐藏控件来保存文本时,使用标签会更有效。

2.使用磁盘文件或资源和组织模块。

在设计时,直接放入应用程序的数据(如属性或代码中的文本字符串和数值)会增加应用程序在运行时占用的内存。在运行时从磁盘文件或资源加载数据可以减少内存消耗。这对于大的位图和字符串尤其有价值。文件实际上是由一系列独立的字符串、位图或其他项目组成的,每个项目都有一个唯一的标识符。您可以使用类似于microsoft visual c++中提供的文本编辑器和资源编译器来创建资源文件。编译的资源文件有。res扩展。

Visual basic仅在需要时加载模块,也就是说,当代码调用模块中的过程时,模块被加载到内存中。如果从未调用过特定模块中的过程,visual basic将永远不会加载该模块。所以尽量把相关的进程放在同一个模块里,让visual basic只在需要的时候加载模块。

3.考虑替换变量数据类型。

Variant数据类型使用起来非常灵活,但是它比其他数据类型占用更多的内存。当要压缩应用程序的冗余空空间时,应该考虑用其他数据类型替换variant变量,尤其是variant变量数组。

每个变量占用16个字节,而integer占用2个字节,double占用8个字节。可变长度字符串变量占用4个字节加1个字节用于字符串中的每个字符,但是每个包含字符串的变量占用16个字节加1个字节用于字符串中的每个字符。因为太大,variant变量作为局部变量或过程的参数使用时特别讨厌,因为消耗stack 空太快。但是,在某些情况下,使用其他数据类型而不是variant会降低灵活性,因此必须添加更多的代码来弥补失去的灵活性。因此,尺寸并没有真正减小。

4.删除时使用动态数组并回收内存。

使用动态数组代替固定数组。当不再需要动态数组的数据时,使用erase或redim preserve丢弃不必要的数据并回收数组使用的内存。例如,以下代码可用于回收动态数组使用的空:

Erase myarray
,Erase完全删除数组,而redim preserve仅缩短数组而不丢失其内容:

RedPreserve MyArray (10,smallnum)
删除一个固定大小的数组,它不能回收数组所占用的空间空-它只是清除数组中每个元素的值。如果元素是包含字符串或数组的字符串或变量,删除数组可以回收这些字符串或变量占用的内存,而不是数组本身占用的内存。

5.回收字符串或对象变量使用的空。

当这个过程完成时,由(非静态)本地字符串和数组变量使用的空可以被自动回收。但是,全局和模块级的字符串和数组变量会一直存在,直到整个程序结束。如果你希望应用程序尽可能的小,你必须尽可能的回收这些变量使用的空。将零长度字符串赋给字符串变量可以回收其空:

somestring var = ' ' ' Recycle空
同样,将对象变量设置为nothing可以回收一些(但不是全部)空使用的对象。例如,删除一个表单对象变量:

global as new status form
f . show 1 ' form加载并显示在mode
x=f.text1.text '用户按下按钮隐藏表单
unload f '删除表单的可见部分
set f = nothing ' recycle空。

6.消除死代码和无用变量。

在开发和修改应用程序时,可能会留下死代码——代码中有一个完整的进程,但在任何地方都没有被调用过。一些未使用的变量也可以被声明。虽然visual basic可以在创建时删除无用的常量。exe文件,它不能删除无用的变量和死代码。注意复查代码,发现并删除无用变量和死代码。如debug.print语句,在运行时会被忽略。exe,但它经常出现在。exe文件。

当一个。将不会编译包含字符串和变量作为参数的debug.print语句。但是,编译器会忽略将函数作为参数的debug.print语句,并编译函数。因此,当应用程序运行时,函数被调用,但返回值被忽略。在。exe文件,当函数作为debug.print的参数出现时,会占用空和cpu周期时间,所以在生成exe文件之前删除这些语句。

使用“编辑”菜单中的“查找”命令搜索特定变量的引用。或者每个模块都包含option explicit语句时,通过删除或注释变量的声明,运行应用程序,可以快速发现该变量是否被使用。如果使用此变量,visual basic将出错。如果没有错误,则不使用该变量。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualBasic代码优化的六条军规

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情