我在编程时有点不高兴,但我想知道如果你用两种不同的编译语言编写两个相同的程序(例如java和C++)并在编译它们后运行它们,那么运行时间不同还是只是编译时间不同?速度对于不同的编译语言有不同吗? (例如Java与C++)
回答
解释经验法则(即时编译)比预编译慢,编译到虚拟机(如Java)比依赖于架构要慢,而且程序比OO快并且组装速度快于程序化(但您不想使用它,除非你为工业应用编程类似PIC微控制器的东西,或者你是Neo和编程绝地之间的某种混合)
无论如何,每种语言都有一些优点和缺点,还有一个很好的优化(识别瓶颈和提高这些特定点的性能)可以使您的程序运行得比任何其他粗心的执行都快,无论使用哪种语言......
然而,这是经验法则与大拇指(即令人难以置信的近似和overgeneralizing)。例如,JIT编译器(如HotSpot)可以更积极地进行优化(内联间接/虚拟调用和跨动态加载的库),现在的主流C编译器可以在99%的时间内胜过大多数人类。 – delnan
关于编译器不断改进,你是对的,但我仍然不知道:如果你想确保事情做得正确,你必须自己做。大多数编译器对大量应用进行优化的可能性比较大,但我没有看到自己使用gcc编译led或传感器微控制器甚至基本工业机器人手臂的程序,尽管我的技术学校的朋友告诉我他们正在教那现在... – NotGaeL
@delnan:有没有人在非平凡的应用程序上测量Java比C快? (不要使用玩具C语言编译器或其他任何东西作弊。)我问,因为我听说过这种激进的优化论证很多,但我从来没有看到它在现实世界中泛滥。但是我再次看到PHP的性能优于Java,可能是因为Java代码并不是最优的(阅读:可能会被单个客户端反复点击鼠标来切换设置)。有一个教训埋在那里...... – LnxPrgr3
Java代码比C++慢。与任何研究一样,这些数字可能会有所不同。您通常看到20%比C/C++慢,因为它最受Java青睐。 Wikipedia compares他们在一些更详细的。
其他来源说它使用50% more memory。
简而言之:Java比编译为机器代码的C,C++和其他语言要慢(与Java的bytecode相比)。
对不起,我的一个链接格式不正确。它是固定的。 – FakeRainBrigand
只是广泛地指出“Java代码比C++慢”肯定会受到挑战,所以我会扮演魔鬼的拥护者......看看http://en.wikipedia.org/wiki/Java_performance,引用Java字节码或提到JIT编译器。 – delnan
您可以随时编辑我的答案,但我不明白它会如何更快。您链接到的维基百科页面说:“编译器无法完全优化程序,因此生成的程序比本地代码替代方案慢”。在JIT的背景下。 (我可能在我的答案中使用了错误的术语,比如字节码,如果你可以改变它,它会很好。) – FakeRainBrigand
- 1. 编译不同的语言在Eclipse上
- 2. 对于iPhone,您可以编程使用不同的语言吗?
- 3. Symfony强制翻译成不同于当前语言的语言
- 4. 角度翻译:用不同的语言翻译页面的不同部分
- 5. Java编译器是否针对不同的语言环境进行了翻译?
- 6. 什么是编译速度快的编译编程语言?
- 7. Inno setup编译器:针对不同语言的不同类型描述
- 8. 使用不同的编译器提升编译速度
- 9. 应与不同语言编写
- 10. 不同的语言
- 11. 连接不同的编程语言
- 12. 不同语言对机器学习的相对普及程度?
- 13. 针对不同编译器的不同输出 - C和C++
- 14. 正在学习很多不同的编程语言吗?
- 15. 不同编程语言的随机数
- 16. 使用不同编程语言的TCP
- 17. 不同语言
- 18. 比较不同语言的性能和执行速度
- 19. 可以用相同的语言L来实现语言L的编译器吗?
- 20. 从不同于java的编程语言访问restlet
- 21. 如何编写和不同的语言
- 22. 以不同的编程语言重载
- 23. 翻译网站成不同的语言
- 24. C#中的文化等同于Java中的语言环境吗?
- 25. 不同的编译器,不同的语法
- 26. 有不同的风格适用于不同的语法荧光笔语言
- 27. 为什么编译速度在C++和C#中有很大不同?
- 28. 不同的方式对C语言编程
- 29. 字符串长度与其他语言不同......不是英语
- 30. 以不同语言编写notepad ++插件
说C++和Java是'两种编译语言'都是误导,因为C++编译为机器代码,而Java编译为虚拟机字节码,这本质上对性能有巨大的影响。 – 0x5f3759df
语言没有速度。实现。这个问题主要是“JIT vs编译”,之前已经被问过很多次了。 – 2011-12-10 23:48:44
为了让你开始... http://stackoverflow.com/questions/7591169/why-is-it-hard-to-beat-aot-compiler-with-a-jit-compiler-in-terms-of- app-perfor,http://stackoverflow.com/questions/7448508/java-vs-c-raytracing,http://stackoverflow.com/questions/1550910/c-and-java-performance,http:// stackoverflow。 com/questions/1517868/performance-of-java-1-6-vs-c,http://stackoverflow.com/questions/313446/can-anyone-quantify-performance-differences-between-c-and-java, http://stackoverflow.com/questions/145110/c-performance-vs-java-c – 2011-12-10 23:51:14