教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> VB >> 优化技术 >> 善用"Assume No Aliasing"编译选项 RSS订阅
善用"Assume No Aliasing"编译选项
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

据说,如果过程能够2次或多次引用同样的内存地址,那么过程就会包含别名数值。一个典型的例子如下:

Dim g_GlobalVariable As Long

...

Sub ProcWithAliases(x As Long)

x = x + 1

g_GlobalVariable = g_GlobalVariable + 1

End Sub

如果传递给这个过程g_GlobalVariable变量,则将通过一个直接引用以及x参数两种方式修改变量的数值2次。

别名数值经常是不良编程习惯的产物,对于程序优化有害无益。事实上,如果能够完全确认应用程序从来没有使用到别名变量,就可以打开"Assume No Aliasing"高级编译选项,这将告知编译器没有过程可以修改同一内存地址,使编译器产生更加有效率的汇编代码。更特别的是,编译程序将试图缓冲这些数据到CPU的寄存器中,从而明显地加速了程序运行。

总结一下,当遇到以下情况时,就不会有别名数值:(1) 过程不引用任何全局变量 (2) 过程引用了全局变量,但从来不通过ByRef参数类型传递同一变量给过程 (3) 过程含有多个ByRef参数类型,但从来不传递同一变量到其中的2个或者多个之中。

来源:十度教育
作者:
关键字:善用,quot,Assume,No,Aliasing,quot,编译选项
发表日期:2006-5-31 22:56:44

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:And、Or和Xor:让我们来优化表达式   下一篇:为常量定义合适的类型


2008-11-23 20:16:54
本文的相类似文章
  • Norton安全特警实用技巧四则
  • Norton,PC慢如蜗牛的罪魁祸首!
  • Nopir病毒专门删硬盘中MP3文件
  • NOKIA2100的完整制作流程
  • 我的低音炮(rhino初级教程)
  • Oracle 的 in 和 not in ――性能实践
  • 关于数据库调优Node1
  • 2Gb or Not 2Gb - File limits(文件限制2)
  • 2Gb or Not 2Gb - File limits
  • Data Mining Technologies, Techniques, Tools, and Trends
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com