【发布时间】:2010-07-21 16:01:58
【问题描述】:
从我读过的 java (通常)看来,java 编译为不是很优化的 java 字节码(根本不是?),把它留给 jit 来优化。这是真的?如果是的话,是否有任何探索(可能在替代实现中)让编译器优化代码以减少 jit 要做的工作(这可能吗)?
还有很多人似乎不喜欢 Java(和许多其他高级内存管理语言)的本机代码生成(有时称为提前编译),原因有很多,例如失去可移植性(等等。 ),但也部分是因为(至少对于那些具有即时编译器的语言)的想法是,提前编译为机器代码会错过 jit 编译器可以完成的可能优化,因此可能会更慢从长远来看。
这让我想知道是否有人尝试过实现 http://en.wikipedia.org/wiki/Profile-guided_optimization(编译成二进制文件 + 一些额外内容,然后运行程序并分析测试运行的运行时信息,以生成一个希望更优化的二进制文件以供实际使用) 用于 java/(其他内存管理语言),这将如何与 jit 代码进行比较?有人知道吗?
【问题讨论】:
标签: compilation jit aot