在优化程序代码大小的诸多技术中

在优化程序代码大小的诸多技术中

ID:9023526

大小:24.50 KB

页数:3页

时间:2018-04-15

在优化程序代码大小的诸多技术中_第1页
在优化程序代码大小的诸多技术中_第2页
在优化程序代码大小的诸多技术中_第3页
资源描述:

《在优化程序代码大小的诸多技术中》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在优化程序代码大小的诸多技术中,大多包括从代码中删除不必要的元素。在编译应用程序时,VisualBasic自动删除某些元素。而标识符名称、注释、空行的长度或数量是无须限制的,当应用程序作为一个.EXE文件运行时,以上这些元素都不会影响应用程序所占内存的大小。其他元素,如变量、窗体和过程,确实要占据内存的一部分空间。最好将它们精简以使效率更高。下面介绍6种方法可用于缩小应用程序所需内存和减少代码大小,希望能对初学者有所帮助。  1、减少加载窗体、控件数目和用标签代替文本框  每一个加载的窗体,无论可视与否,都要占据一定数量的内存(其数量随窗体上控件的类型和数量,以及窗体上位图的大

2、小等的不同而变化)。只在需要显示时才加载窗体,不再需要时卸载窗体(而不是隐藏窗体)。记住,任何对窗体的属性、方法或控件的引用,或对用New声明的窗体变量的引用,都会导致VisualBasic加载该窗体。  使用Unload方法卸载窗体时,只能释放部分窗体所占空间。要释放所有空间,可用关键字Nothing使窗体的引用无效:SetForm=Nothing  当设计应用程序时,窗体应尽量少用控件。实际的限制取决于控件的类型和系统,但实际上,含有大量控件的窗体将运行缓慢。一项与之相关的技术是:设计时尽可能地使用控件数组,而不是在窗体上放置大量同类型的控件。控件数组是一组具有共同名称和类

3、型的控件。它们的事件过程也相同。在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。当希望若干控件共享代码时,控件数组也很有用。标签控件Label占用的Windows资源比文本框Textbox少,因此在可能的情况下,应使用标签代替文本框。例如,当窗体上需要一个隐藏的控件保存文本时,使用标签更有效。  2、使用磁盘文件或资源和组织模块  在设计时,直接放入应用程序的数据(象属性或代码中的文字字符串和数值)将增加运行时应用程序占用的内存。运行时从磁盘文件或资源中加载数据可减少占用内存。这对大位图和字符串特别有价值。资源文件实际上是由一系列独立

4、的字符串、位图或者其他项目组成的,其中每一项都有一个唯一的标识符。可以使用类似于在MicrosoftVisualC++中提供的文本编辑器和资源编译器创建资源文件。编译过的资源文件带有.res扩展名。  VisualBasic只在需要时才加载模块即当代码调用模块中的一个过程时,模块才被加载到内存。如果从未调用一特定模块中的过程,VisualBasic决不加载该模块。因此,尽量把相关的过程放在同一模块中,让VisualBasic只在需要时才加载模块。  3、考虑替换Variant数据类型  Variant数据类型使用极其灵活,但是比其他数据类型所占内存大。当要压缩应用程序多余的空间

5、时,应考虑用其他数据类型替代Variant变量,特别是替代Variant变量数组。  每一个Variant占用16个字节,而Integer占2个字节,Double占8个字节。变长字符串变量占用4个字节加上字符串中每一个字符占用1个字节,但是,每一个包含字符串的Variant都要占用16个字节加上字符串中每一个字符占用1个字节。因为它们太大,因此在用作局部变量或过程的参数时,Variant变量是特别烦人的,这是因为它们消耗堆栈空间太快。但在有些情况下,使用其他数据类型替代Variant,灵活性降低了,为弥补损失的灵活性,不得不增加更多的代码。结果是大小没有真正的减小。  4、使用

6、动态数组并在删除时回收内存  使用动态数组代替固定数组。当不再需要动态数组的数据时,用Erase或ReDimPreserve放弃不需要的数据,并回收数组所用内存。例如,用以下代码可回收动态数组所用空间:EraseMyArray  里,Erase完全删除数组,ReDimPreserve则只缩短数组而不丢失其内容:ReDimPreserveMyArray(10,smallernum)  删除了固定大小数组,也不能回收该数组所占空间--只是简单地清除数组每一元素中的值。如果元素是字符串,或包含字符串或数组的Variant变量,那么删除数组可回收这些字符串或Variants所占内存,而

7、不是数组本身所占内存。  5、回收被字符串或对象变量用过的空间  当过程结束时,可自动回收(非静态)局部字符串和数组变量所用空间。但是,全局和模块级的字符串和数组变量一直存活到整个程序结束。要想应用程序尽量小,就得尽可能回收这些变量所用空间。将零长度字符串赋给字符串变量,可回收其空间:SomeStringVar=""'回收空间  同样,将对象变量设置成Nothing可回收该对象所用的部分(而不是全部)空间。例如,删除一个Form对象变量:GlobalFAsNewStatusFormF.Sho

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。