如何写出高效的程序代码_第1页
如何写出高效的程序代码_第2页
如何写出高效的程序代码_第3页
如何写出高效的程序代码_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、什么是一个高效的软件?一个高效的软件不仅应该比实现同样功能的软件运行得更快,还应该消耗更少的系统资源。 程序的时间效率是指运行速度, 空间效率是指程序占用内存或者外 存的状况。 另外程序的效率我们也可以分为全局效率和局部效率。 全局效率是指站在整个系 统的角度上考虑的效率,局部效率是指站在模块或函数角度上考虑的效率。1. 使用整数和长整数提高代码运行速度最简单的方法莫过于使用正确的数据类型了。也许你不相信,但是 正确地选择数据类型可以大幅度提升代码的性能。 在大多数情况下, 程序员可以将短整数型、 小数型和双精度小数型的变量替换为整数(Integer)或长整数(Long)类型的变量,因为易语言

2、处理整数和长整数的能力远远高于处理其它几种数据类型。10 倍。在大多数情况下, 程序员选择使用小数型或双精度小数型的原因是因为它们能够保存小 数。但是小数也可以保存在整数类型的变量中。 例如程序中约定有三位小数, 那么只需要将 保存在整数型变量中的数值除以 1 000就可以得到结果。根据我的经验,使用整数和长整数 替代短整数型、小数型和双精度小数型后,代码的运行速度可以提高将近因为在程序中数据类型的定义还牵涉一个,是数据的安 ,只能用双精度但是我们也不要老是强调使用使用整数和长整数,关键的问题 ,就是数据的安全 ,频繁而无规范地定义数据类型会使算法出现漏洞 全和临界判断有问题 .对财务和工程计

3、算而言 ,小数点的精度是很敏感的数据 数据来规范 .另外 , 换成整型也会导致程序可读性急剧下降 .Integer)也有的程序员图个省事 完全可以避免使用变体只需要 2 个字2. 避免使用通用型数据通用型的变量需要 16 个字节的空间来保存数据,而一个整数( 节。通常使用通用型变量的目的是为了减少设计的工作量和代码量, 而使用它。 但是如果一个软件经过了严格设计和按照规范编码的话, 类型。3. 尽量避免使用属性反复使用属20 倍左右。在平时的代码中, 最常见的比较低效的代码就是在可以使用变量的情况下, 性( Property ),尤其是在循环中。要知道存取变量的速度是存取属性的速度的 下面这段

4、代码是很多程序员在程序中会使用到的: 容器名: 数值 类型:整数型 容器名: 容器 类型:整数型 计次循环首( 7,容器)文本1.内容=文本1.内容+ #换行符+到文本(数值乂容器)计次循环尾()面这段代码的执行速度是上面代码的20 倍。容器名: 数值容器名: 容器容器名: 文本类型:整数型 类型:整数型 类型:文本型文本 = 文本 1.内容 计次循环首( 7,容器)文本=文本+ #换行符+到文本(数值熔器) 计次循环尾()文本 1.内容 = 文本所以另外要注意, 这个涉及一个编程思路, 用属性当变量的作法大多数情况可以简化算法。 有时候也不能一味强调用变量代替属性。6. 避免调用很短的子程序

5、调用只有几行代码的子程序也是不经济的 - 调用子程序所花费的时间或许比执行子程 序中的代码需要更长的时间。 在这种情况下, 你可以把子程序中的代码拷贝到原来调用子程 序的地方。 但是有时候小的子程序可能会被调用很多次而不是只有两三次,这时就应该调用它。7. 减少对子对象的引用在易语言中,通过使用 .来实现对象的引用。例如:窗口 1.编辑框 1.内容在上面的例子中,程序引用了两个对象:窗口低。但遗憾的是,没有办法可以避免它。我的1 和编辑框 1 。利用这种方法引用效率很 多媒体模块 ”就有这个缺点。8. 检查文本型数据是否为空大多数易语言用户在检查文本型数据是否为空时会使用下面的方法: 如果 (

6、文本 1.内容 = ) 注释: 执行操作 结束如果因此我建议大家使用下很不幸, 进行字符串比较需要的处理量甚至比读取属性还要大。 面的方法: 如果 (到数值 (文本 1.内容) = 0 ) 注释: 执行操作结束如果另一个不同的意见是: 问题在于当文本字串为 ABC 之类的非数值型时 , 到数值 (ABC)=0 并不表示为空。文本比较的效率并不低,在底层算法中 ,一般会直接比较长度才会继续比较内容。9. 使用数组,而不是多个变量当你有多个保存类似数据的变量时,可以考虑将他们用一个数组代替。在易语言中,数组是最高效的数据结构之一。10. 尽量使用动态数组,而不是静态数组但是在某些情况下可以节约大量

7、使用动态数组对代码的执行速度不会产生太大的影响, 的资源。11. 销毁对象无论编写的是什么软件, 程序员都需要考虑在用户决定终止软件运行后释放软件占用的 内存空间。 但遗憾的是很多用户对这一点好像并不是很在意。 正确的做法是在退出程序前需 要销毁程序中使用的对象。例如:关闭数据库:关闭(数据库名称) 、全部关闭() ,关闭打 开(播放)的文件,关闭载入的图片等。 中止程序执行时应该要关闭打开的文件(包括数据库文件、图片文件等) ,但是窗口销毁对 销毁窗口及窗口单元来说是自动的,已足够做释放用 , 在窗口内最好不要随意销毁窗口单元.只有在图形 buffer 情况才需要经常销可能会导致程序运行中的

8、潜在的单元数据访问而崩溃 毁。12. 尽量使用内部子程序,减少易模块的数量因为从易语言连接到一个外部对象需要耗费大量的 时候,都会浪费大量的系统资源。另外只有在易模块中的接口函数或变量被调用时, 言应用程序退出时, 进行一次加载操作, 进行多次加载操作,CPU 处理能力。每当你调用接口函数的才会从内存中卸载这些模块。 这样代码的效率就得到了提高; 代码的效率会降低。易语言才将易模块加载到内存中; 如果代码中只有一个模块, 反之如果代码中有多个模块,当易语 易语言就只会 , 易语言会你可以做一 然后创建一 运行程序, 你可13. 使用对象数组当设计用户界面时, 对于同样类型的控件, 程序员应该尽

9、量使用对象数组。 个实验:在窗口上添加 100 个图片框,每个图片框都有不同的名称, 运行程序。 个新的工程,同样在窗口上添加 100 个图片框,不过这一次使用对象数组, 以注意到两个程序加载时间上的差别。 也有人认为两者从逻辑上看效率应该差不多。14. 使用窗口单元 “移动 ”方法在改变对象的位置时, 有些用户喜欢使用 “宽度 ”、高度”、“顶边 ”和“左边”属性。 例如:按钮 按钮 按钮 按钮1.宽度1.高度1.顶边1.左边= 100= 100实际上这样做效率很低, 因为程序修改了四个属性,绘。正确的做法是使用 Move 方法:而且每次修改之后, 窗口都会被重按钮 1.移动( 0,0,10

10、0,100 )15. 减少图片的使用图片将占用大量内存,而且处理图片也需要占用很多 的话,可以考虑用背景色来替代图片-当然这只是从技术人员的角度出发看这个问题。但是如果为了优化程序界面,使用图形换来的好处可能远胜节约下的资源,否则就不会有 XP,也不会有游戏的进步了。CPU 资源。在软件中,如果可能16. 编译优化易语言的程序编译有三个选项: 序应该是 “编译生成安装软件 有的支持库都编译进去, 而 语言环境也可以运行,就不要使用“编译 ”、“独立编译 ”、“编译生成安装软件 ”。优先使用的次”、“编译”、“独立编译 ”,因为“独立编译 ”会将易语言系统中所编译生成安装软件 ”只选择程序中必要的支持库编译。 要脱离易编译”而应用“编译生成安装软件 ”或“独立编译 ”。总结: 执行效率和程序可读性永远是对矛盾, 两者应该通盘考虑; 资源占用和程序易用性永 远是对矛盾,两者也应该通盘考虑。基于此,下面探讨一些提高程序的效率的规则。【规则 1】不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质 量因素的前提下,设法提高程序的效率。规则2】以提高程序的全局效率为主,提高局部效率为辅。规则3】在优化程序的效率时, 应当先找出限制效率的 “瓶颈 ”,不要在无关紧要之处优化。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论