代码执行效率大讨论

xiongxiao 2003-12-27 12:11:26
如一段代码经常要用,所以就可以写成函数,那么是在需要的地方直接用代码执行快一些呢,还是调用函数快,或者两者差不多,在上千万的大循环中,一点点细微的差别影响都是很大的,所以想知道到底怎样最快,还有,如果是全局函数又怎么样?
...全文
61 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongxiao 2003-12-30
  • 打赏
  • 举报
回复
UP
brightstar 2003-12-29
  • 打赏
  • 举报
回复
运行效率大体上和OOP的层次是成反比的,OOP带来的是代码的高度重用,代价就是运行效率,但是我们常见的效率问题,有多少是因为外部调用还是内部调用的差别造成的呢,也许这个差别在对数据库的操作时间上都可以忽略不计的,当我们遇到更多的效率问题时,要从算法层多下工夫看看,还有数据库的优化及数据库设计上多弄弄。
总之一句话:差别是有的,但未必是瓶颈问题,要把焦点多注意主要问题上。
xiongxiao 2003-12-29
  • 打赏
  • 举报
回复
那这PB编译后,函数的调用与代码的执行到底是怎样一种情形?
blazingstar 2003-12-29
  • 打赏
  • 举报
回复
直接引用代码比调用函数快,调用函数在机器代码实现时,调用前要先将参数压入堆栈,调用结束返回时又要把调用前压入堆栈的数据弹出堆栈。
但从程序可读性和可维护性方面讲,还是用函数比较好。
而且对于PB来说直接引用代码和调用函数速度相差不大,如果是想真正提高速度可以将关键代码用VC或汇编实现,在PB中调用就可以了。
xiongxiao 2003-12-29
  • 打赏
  • 举报
回复
不知道编译后的程度是如何对在循环中的函数进行处理的,是放在内存中的某一地方等待调用吗?如果是直接写代码的话,是不是会与循环语句的代码连续放在一起?如果这两个问题为肯定的话,也就是说采用函数就会在每次调用都要多一次寻址时间(或者是两次,不知调用完后返回要不要寻原来的地址址?),现在内存的寻址时间一般是5ns左右(不太清楚),也就是0.000005秒*1千万=50秒,也就是说比直接用代码至少要慢50秒,不知这样的计算方法成不成立?
jeff_107 2003-12-29
  • 打赏
  • 举报
回复
计算机的处理速度哪是人能感觉的到的呢,更何况又是一句调用语句,呵呵

xhwly 2003-12-29
  • 打赏
  • 举报
回复
如果說函數慢一點的話,應該也就是多執行了調用函數這條語句,對整個程序來說應該是可以忽略不計的.
pbsql 2003-12-29
  • 打赏
  • 举报
回复
写成函数或存储过程,放到服务器上,客户端调用
sinkiangscorpio 2003-12-29
  • 打赏
  • 举报
回复
函数可以让维护代码方便,但影响速度,尤其是循环多的地方。
xirumin 2003-12-29
  • 打赏
  • 举报
回复
如果程序特别庞大, 我感觉函数反而会快一些
flyerlxg 2003-12-29
  • 打赏
  • 举报
回复
是呀,从速度上讲,当然是直接书写代码要快一点,但现在的电脑配置都这样高了,区区一点点速度上用户又能有什么分别呢。
从可维护性、可读性方面讲,那就不用我说了,时间一长就会显示出其方便性了。
feixianzhi 2003-12-29
  • 打赏
  • 举报
回复
机器配置都高了,函数代码都一样!
hzhxxx 2003-12-29
  • 打赏
  • 举报
回复


我一般使用用户对象,经常使用的函数放在全局的用户对象里面,应用初始化就创建
workhand 2003-12-29
  • 打赏
  • 举报
回复
现在的大部分机器性能都很好,对于调用函数和直接执行所带来的效率的不同几乎感觉不出来(当然是代码编写合理、规范)。不像以前的汇编,追求代码的简练,现在主要是代码的可维护性、可读性。所以跟随大家的意见了。
qianduo 2003-12-29
  • 打赏
  • 举报
回复
函数好,这样的话我想以后只要改一个地方就可以了。可维护性也好一点。
xiongxiao 2003-12-29
  • 打赏
  • 举报
回复
现在就关心速度方面的差别?比如要对几千万个无序数的进行单双判断,大家有什么好办法吗,用代码还是函数?如果可以,大家可以写一段简单的代码贴出来看看
joss 2003-12-29
  • 打赏
  • 举报
回复
当我们在写一些小程序时可能对函数的重要性不会那么重视,但是当做些大工程时就能显示体会那函数的好处了!
程序语言发展也告诉我们这个道理,面向对象技术所强调的就是可重用性和可读性,函数当前不可缺少。全局与局部函数的使用主要要看实例的要求!
brightstar 2003-12-29
  • 打赏
  • 举报
回复
PB编译后的东西,不论是PBD还是PBL,都离不开运行库(PBVMX0.DLL... ...)
所以PB还是伪编译的东东,这也是PB可以跨平台的原因,太底层的东西就要问SYBASE了.
如果不参与数据库访问,而且要求高效的大循环,还是不用PB的快.
victor07 2003-12-28
  • 打赏
  • 举报
回复
还是函数好,谁也不知道用户需求什么时候变,更难知道程序员将会错在哪里,而且这种效率上的降低可以说是微不足道的,在这下功夫还不如好好研究一下自己的算法效率。
hxd82 2003-12-28
  • 打赏
  • 举报
回复
同意楼上!!!函数很好维护,但是有一些地方可以直接复制代码!!
加载更多回复(11)

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧