导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

代码执行效率大讨论

xiongxiao 2003-12-27 12:11:26
如一段代码经常要用,所以就可以写成函数,那么是在需要的地方直接用代码执行快一些呢,还是调用函数快,或者两者差不多,在上千万的大循环中,一点点细微的差别影响都是很大的,所以想知道到底怎样最快,还有,如果是全局函数又怎么样?
...全文
10 点赞 收藏 31
写回复
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
同意楼上!!!函数很好维护,但是有一些地方可以直接复制代码!!
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

803

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告