五千年(敝帚自珍)

主题:【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码 -- 老兵帅客

共:💬64
分页树展主题 · 全看首页 上页
/ 5
下页 末页
  • 家园 【讨论】解释执行类代码的性能有无可能达到甚至超过本机编译代码

    咋天的讨论中看到老轧的一个帖子(http://www.cchere.com/article/215508)说C#的运行性能最终将超过C++,我对此感到有些怀疑。虽然对某些频繁使用的代码段来说性能接近是可能的(本机码高速缓存部分消除了反复转换的必要),但是也只是接近而很难超过后者,因为超过后者所需要的跟踪分析和动态优化的开销值得考虑,特别是当程序跳转的范围比较大的时候,这种优化的费效比值得怀疑。

    以上是我的一点想法,欢迎有兴趣者参与讨论。

    谢谢。

    • 家园 【请教】那有中英对照的

      很想看懂你们在讲十么, 但那么多中文的词, 看的我头大。 编译器是 compiler 吧?

    • 家园 我的一点浅见

      原本我也以为不大可能,但看了老兵的贴子,原话如此:

      这里,迟后联编实际上就是某种解释执行。

      帖子在这:链接出处

      这么说,越是OO的语言,就越有可能解释执行类代码的性能超过本机编译代码。

      不过再好的编译器,解释器,放在二流的程序员手里,也给糟蹋了。

    • 家园 咋天靠这个话题,信息技术版面发贴量排名论坛第二

      这个样子下去,西西河会变成信息技术论坛了。

      • 家园 呵呵,俺灌的太多

        而且不学无术,让二位笑话拉,

        回头俺还是灌些不是纯净水的东西吧。

        • 家园 其实你在女士里面已经算很不错的了

          我记得你不是CS出身,能够做到这些已经很不错了。

          我见过太多的CS专业出身女士,编译原理方面是一脑门子的糨子,就知道写Code混日子,一离开集成开发环境就什么都不知道了,整个一群编程工人。

          我这里有个奇闻,一位中国女士从我读CS硕士学位的学校拿到CS硕士学位并且毕业以后,因为写不了程序而找不到工作,一赌气又回来接着读博士了。

          我估计斗牛士就是给像她这样的奇才设计的。

          • 家园 要不我怎么说而位火眼金睛?

            编译原理确实是我唯一没有好好学习过的一门课程,

            当然我要是学过这门课的话,一定是不会一团浆糊的。

            不过也不是没有完全接触过,至少在操作系统里面是接触过,

            而汇编语言怎么翻译成机器码的,俺也还是知道的,最初的时候还手工编制翻译过比较完整的监控程序的代码, Lex & Yacc这类东东也是用过的。

            后来也就是需要的时候,去翻翻相关的章节,奇怪的是好像

            很少需要,也就没有系统地学习过,这可能就是同科班出身的差距。

            所以在这里谈这个问题,嗯,是有些不太合适。

            没法子,这两天有些上火,不过,如果我不参与这场争论的话,就不会

            学到这些东西,也看不到自己的短处了。

            以前在SUN, LINUX上也从来不用集成开发环境的,俺对WINDOWS的东西了解很少,在国内的时候主要在unix类型的机器上工作,到这里么,更加如此,因为很多东西只有在Linux上的能轻易拿到Free的源代码。

            老兵好像很看不起PhD阿,其实只是大家专长不同而已,作得好Reseach的人不一定能编得好程序,反之亦然。

            • 家园 建议考虑Eclipse

              Eclipse (www.eclipse.org)是一个Open Source而且Free的开发集成环境,可以在包括Windows,Unix,Linux和Apple MacOS在内的各种操作系统下工作,通过增加Plug-In,它可以支持SmallTalk,C/C++,Perl,PHP等各种开发语言,更可以提供对Java/J2EE的支持。

              Unix在历史上曾经是技术进步的来源,但是现在已经逐步被Linux/Windows所蚕食。而在Linux环境下,例如KDeveloper、Eclipse之类的开发环境已经有一些了,它们都是Free的。

              在现在这个时代,除非还在使用字符终端,否则继续使用Vi/EMacs,除了抱残守缺以外,意义不大。

              • 家园 Eclipse不错

                用过的最高的Free的JAVA IDE。

              • 家园 老兵,我和你拼了,你敢对俺下井落石!!

                不对,是落井下石。气得我都话都不会说了。

                我这个破项目就是用EMACS,干J2EE OF Weblogic and Sun Java Server。惨呢,这个公司负责这个项目的,横竖不让用任何IDE。为了这个临时合同工的饭碗,我要手工做那些configuration xml files and all other garbages。不说了,眼泪汪汪的。

            • 家园 回您的话

              首先,编译理论是个桥梁,它涉及了从源代码分析到目标代码优化的全过程,这门功课学好了,有助于软件人员从大模样上掌握软件的一些思想,否则只做细节,就离不开工人的范畴了。

              其次,汇编语言只是机器码的助记符形式,汇编器可以说是最简单的编译器了,因为两种语言(汇编语言和机器码)的距离基本是零。

              最后,我不是看不起博士,而是看不起不能够编程的软件博士。软件科学本身基本是个动手的行当,编程能力是这个行当的基本功,一个人连基本功都不具备,何谈研究?的确,编得好程序的不一定能够做研究,但是编不好程序的一定做不好研究。

              • 家园 受教了

                有时间俺一定补好这门课.

                不过呢,最后一点有些不同意, 你要是说没有能力编号程序的人,

                一定做不好 CS 的科研,我同意.但是要说不会编

                程的就一定做不好 CS 科研,不见得阿,有些作理论研究的,也许

                只是根本没有受到某种具体的编程训练,因此不会编程而已.

                比如我到欧洲爱立信访问的时候遇到一些科学家, 他们只会使用

                某种特殊的语言, 实现他们的思想的一些Prototype而已,他们甚至

                不懂C++, 但是他们概念都很清楚, 稍微一提示就明白.

                我们这里的CS的学生一般会把自己的研究范围分为, Theory, System, 和AI,

                如果你的论断只是指System的东西话, 俺基本同意,但是对Theory的话,我不

                太同意.

                俺不是做理论的, 但是到这里上过某图林奖获奖者的课, 对这样的人,

                我还是很敬仰的, 我好像听他的学生说过一句,说他不变程序的.

                呵呵,不是很确定,但我觉得如果是那个范畴的科研, 一个直接这么读

                上去的博士生, 很可能是没有参与过实际大型软件项目开发的,

                自然也就是不会编程的, 但这并不意味着他做不好科研.

                • 家园 拜托,学术编程也是编程

                  只不过是使用某种特定语言罢了,和根本不能够编程完全是两回事情。除非是以前计算数学出身,后来一直只搞纯算法理论的,否则至少可以用某种编程语言清晰地表达自己的思想的。

                  另外,工业界的编程语言可以被学术界看成是某些设施的组合,学术界的编程语言所包含的设施经常要比工业界的丰富或者精炼,因此只要术语一致,讨论起来就不会有问题。

                  我说的是那种一门简单的编程语言(例如Java)学了两个多月,很简单的小程序(简单的数据结构,例如二叉平衡树的处理)一天还写不了两百行,这可就太难了,说明他们脑子里还没有很好的逻辑思维能力呢。

分页树展主题 · 全看首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河