空心雨毕业论文网提供毕业论文、职称论文、硕士论文、计算机论文等的代写服务,同时还提供各种期刊论文的发表。如果你有需要,请联系我们QQ:5599630;电话:13350726595;E-mail:singlehearted@vip.qq.com
RSS
 

优化程序长度的一种方法

来源:网络转载 作者:


3. P-CODE使用方法
P-CODE可用于Microsoft的Visual C 、Visual Basic等许多应用程序开发包中,它可全局地用于整个应用程序,也可通过使用“Pragmas”编译指示有选择地用于局部模块中。
3.1. 全局使用方法
当要求以部分速度代价来达到程序长度的显著减小时,可对应用程序全局地使用P-CODE编译。如主要用于用户界面的程序,象字处理器、电子日历、小型企业财务软件包等。
此使用方法比较简单,只要改变应用工程的编译选项,然后重新编译即可。例如在Visual C 工程中加上编译选项开关“/Oq”,或在Visual Basic工程属性的编译页帧中,选中“编译为P-代码”选项。
3.2. 局部使用方法
若要在程序的速度和长度性能上达到比较平衡的满意效果,可在Visual C 源文件中有选择性地加上P-CODE编译指示,具体地指示编译器将哪一段代码编译为P-CODE,而将哪一段代码编译为本地机器码格式。
P-CODE局部使用方法是将编译指示器“#Pragma Optimize(“q”,on)”置入想用P-CODE的模块或函数开始处,而在用P-CODE的模块或函数结束处加上编译指示器“#Pragma Optimize(“q”,off)”。
一般来说,要想达到比较满意的使用效果,就要将主要影响程序执行速度的模块或函数编译为本地机器码,如频繁调用的函数、出现在循环内的函数等。而将相对来说对程序的执行速度起次要作用、主要影响程序长度的模块或函数编译为P-CODE,如用户接口过程中的菜单和对话框模块,因为这里程序执行速度上的牺牲相对于用户的工作速度来说,是微不足道的。还有一些很少使用的模块或函数,如出错处理函数、一般情形下不会用到的功能模块也应编译为P-CODE。
4. P-CODE程序调试
用P-CODE编译的程序,可使用Microsoft提供的调试工具如CodeView调试器等来进行调试。它对源代码级和P-CODE汇编指令级二者都给予支持,所有正常的CodeView调试器命令,如BREAK、STEP、WATCH等在本地机器码和P-CODE码两种方式下都会起作用,只不过在P-CODE方式下,程序在断点暂停后,寄存器窗口显示的是堆栈和P-CODE工作引擎的状态。
因为P-CODE的引用会产生许多跳转指令,使得目标程序调试时难于阅读和跟踪,所以较好的策略是在程序开发调试阶段用编译开关“/Of_”关掉引用,当程序全部调试完毕后再打开引用优化编译开关。
5. P-CODE性能分析
P-CODE技术的本质是用程序执行时间的少量增加来换取其长度的明显减小。虽然P-CODE指令由工作引擎解释执行,固有地慢于CPU本地机器码的执行,但程序总体所需的执行时间还取决于一些系统因素和程序员使用P-CODE的技巧。在内存一定的环境中,大程序长度的减小也相应地减少了其执行时所需的内存容量,从而需要较少的虚拟内存交换页,且相应地提高了Cache命中率,因而减少了其运行时的系统开销,故其P-CODE版本和本地机器码版本最终在执行速度上的差异很小。另外,采用P-CODE后,程序长度减小了,系统总的吞吐率也得到了改善。
6. 结束语
Microsoft的P-CODE技术为程序员提供了一种以少量增加运行时间代价而较方便地压缩执行文件长度的方法。它可通过简单地重编译而在程序中全局地使用,局部使用时将编译指示置于关键过程之前,可保证最大限度地压缩代码长度而使性能损失最小化。

上一页 [1] [2]

1
最新评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
      本站是由一个众多学科的博士群体组建而成,主要创办者为成都各重点高校博士。本论文网内理工科写手均为博士,文科类写手大部分为博士,且领域涵盖广泛,写作势力强大,若有部分专业,没有相关的写手,我们给你寻找合适的写手! 依托强大的人力资源,我们本着诚心交流的宗旨,专门为您排解写作上的难题。从在科研及实践工作中稳扎稳打的经历,我们具备了研究问题,解决问题的能力。论文写作和论文发表,作为教育体系的一个重要环节,我们确实有能力给您解决好问题,正所谓,真金不怕火来炼,请相信我们的势力,没有把握的事,我们不会做!
      本站受多家期刊委托,其中包括国家级中文核心期刊目录正刊,CSSCI目录正刊,增刊,省级以上公开出版的优秀期刊正刊,本站负责论文推荐发表,加急1个月即可发表。本站负责论文发表,不发表承诺退款!!目前主要负责法律,管理,经济,理工,农学,行政,医学,艺术,英语等类论文发表论文代写。详细期刊目录见本站相关内容。
赞助商链接