【发布时间】:2014-12-16 12:55:03
【问题描述】:
Java 程序在特定任务中的性能优于 C 等编译型编程语言。这是因为 JVM 有运行时信息,并在必要时进行 JIT 编译(我猜)。
(例如:http://benchmarksgame.alioth.debian.org/u32/performance.php?test=chameneosredux)
编译语言有这样的东西吗? (我首先对 C 感兴趣)
编译源代码后,开发人员运行它并尝试模拟典型的工作负载。 一个工具收集有关运行的信息,然后根据这些数据重新编译。
【问题讨论】:
-
对于编译型语言,它被称为profiling。一些分析器会为您提供可用于手动优化代码的信息,其他分析器可以提供您反馈给编译器的信息,以便它可以做出更好的优化选择。
-
你有没有一个例子,一个写得好的java程序胜过同样写得好的C程序?
-
仔细查看示例:在多核上,C gcc #5 程序显示更快的 CPU 时间和已用时间。该 C 程序在单核上会降级,因为该程序正在尝试使用核心亲和性,并且正在与强制将程序置于单核上的测量脚本进行交互。该示例并未显示您的想法。 benchmarksgame.alioth.debian.org/u32q/…
标签: c jvm vm-implementation dynamic-analysis