[阅读: 596] 2007-01-12 15:10:07
# bqtiger 发表于2007-01-08 23:51:06 IP: 221.219.102.*
把优化和资源回收之类的工作交给机器来做是一个办法。有的时候不失为一个好办法。但决不是最好、最安全或者是那种放之四海皆准的办法。
面对一段代码,没有“谁”能够比写这段代码的“人”更知道它如何才能运行的更好。
在目前和可以预见的将来,机器相对于人的优势依然是机械的运算而不是其它的什么。机器智能对我们这个世界来说还很弱小、很昂贵、很不稳定。
并且,机器智能做为一个不太简单的人工系统,象一切稍微复杂一点的人工系统一样,是注定了会有缺陷和漏洞的。在外部力量(通常只能是人)改变和修复它之前,它无法做到自我修复。
就象“是人对火和蒸汽的掌握,而不是火或者蒸汽本身改变了世界”那样。在一切变革中,起主导作用的只能是人。推动变革的是人的思考(正确的或错误的)和思考之上的实践(当然:正确的或错误的)。所以,从这个意义上来说。过分的解放不见得是件多好的事情。
这个话题挺没意思的。本来没有任何争论的必要。但是还是多说了两句。。。。。呵呵。
# tczyp 发表于2007-01-09 09:04:09 IP: 58.62.77.*
为什么一再有人证明C#的效率跟C++相差无几(1%~2%的效率损失),而又同时一再有人声称两者效率相差很多。。。老实说,如果效率上只是1%~2%的差别,那么大部分应用就倾向于用java,C#这类半动态语言或者其它全动态语言了。虽然C/C++不会死,但也只能退居二线。所以我非常希望有人能够澄清这个效率问题。
# dwbclz 发表于2007-01-09 13:16:59 IP: 192.168.0.*
缺省情况下,VM确实在内存分配上更高效,它只需递增地址
就可以了,并通过GC来缩并。而且由于GC的存在,内存策略
就比较简单,比如C#等语言无需给String加入引用计数,这
也可以在很多时候提高效率。
C/C++的malloc是低效的,最起码,VC带的malloc是低效的。
所以才会有各种优化手段。优化的C/C++程序可以通过很多方法
来利用内存,比如栈对象,内存池等。多数情况下,一个优化的
C/C++程序整体效率要高于C#,Java程序;未经优化的程序
有可能更低效。