java中JIT效果的一个具体示例 >我知道java有即时编译(JIT),它比C++静态编译语言有优势。是否有任何示例说明java JIT?对于给定的算法,可能的例子可以胜过C或C++代码?或者显示算法的迭代随着时间的推移而加快(我不确定这是否是JIT的一个实例)。或者仅仅是任何一个例子,它可以显示JIT是否存在的某种度量?我问这个问题是因为我只读过关于JIT的书,并希望证明它的存在,而不是像某种宗教上帝那样仅仅相信它

java中JIT效果的一个具体示例 >我知道java有即时编译(JIT),它比C++静态编译语言有优势。是否有任何示例说明java JIT?对于给定的算法,可能的例子可以胜过C或C++代码?或者显示算法的迭代随着时间的推移而加快(我不确定这是否是JIT的一个实例)。或者仅仅是任何一个例子,它可以显示JIT是否存在的某种度量?我问这个问题是因为我只读过关于JIT的书,并希望证明它的存在,而不是像某种宗教上帝那样仅仅相信它,java,jit,Java,Jit,备注-如果这个问题过于固执己见,请评论并告诉我原因。我只是对JIT很好奇,在使用java几年之后,直到今天我还不知道我是如何从中获益的,也不知道它是否能达到超越静态编译对手的宣传效果 其他信息-我已经阅读了关于它何时会这样做的信息,我不想寻找更多的信息,我只想相信这些信息是真实的,我想看到一些东西显示我正在做它应该做的事情 > >编辑< /强> -好,我有很多的回应,已经说过,单独比较JIT优化的速度与C++不是一个好方法,纯java的比较是最不可怕的。举一个用java实现的例子怎么样: 因

备注-如果这个问题过于固执己见,请评论并告诉我原因。我只是对JIT很好奇,在使用java几年之后,直到今天我还不知道我是如何从中获益的,也不知道它是否能达到超越静态编译对手的宣传效果

其他信息-我已经阅读了关于它何时会这样做的信息,我不想寻找更多的信息,我只想相信这些信息是真实的,我想看到一些东西显示我正在做它应该做的事情

<> > >编辑< /强> -好,我有很多的回应,已经说过,单独比较JIT优化的速度与C++不是一个好方法,纯java的比较是最不可怕的。举一个用java实现的例子怎么样:

因此,一个JIT和非JIT优化的程序执行相同的操作。在开始时,JIT还没有开始,程序开始变得更快,而静态程序总是具有相同的性能。然后,条件在5.5秒左右发生变化,应用程序的使用略有不同。JIT能够再次适应这些变化,首先是时间峰值,然后再次开始优化,甚至可以达到更好的优化,因为应用程序的使用略有不同。 这是一个可以接受的显示JIT的示例吗?(我希望实现这一目标,并查看每个人的链接和视频)。

首先,您想观看。它为您提供了查看JIT运行情况的工具

我认为您的问题被误导的地方是,您正在询问一个定制代码的示例,在这个示例中,您可以潜在地测量一些基于JVM的语言X相对于一些非基于JVM的语言Y(例如,X是Java,Y是C)的更快性能

这不是思考JIT的方式。除非您自己为JVM语言编写编译器,或者必须调试一些严重的性能问题,并且只有在您考虑过重构代码并看到它失败之后,您才能深入研究这些细节

但除此之外,原则很简单:JIT是您的朋友,它做的事情是正确的;你所要做的就是编写代码,它能正常工作;如果JIT有办法让它在运行时更快,那么它肯定会这样做。

首先,您想看一看。它为您提供了查看JIT运行情况的工具

我认为您的问题被误导的地方是,您正在询问一个定制代码的示例,在这个示例中,您可以潜在地测量一些基于JVM的语言X相对于一些非基于JVM的语言Y(例如,X是Java,Y是C)的更快性能

这不是思考JIT的方式。除非您自己为JVM语言编写编译器,或者必须调试一些严重的性能问题,并且只有在您考虑过重构代码并看到它失败之后,您才能深入研究这些细节


但除此之外,原则很简单:JIT是您的朋友,它做的事情是正确的;你所要做的就是编写代码,它能正常工作;如果有办法使JIT在运行时更快,那么它肯定会这样做。

JIT即时编译是一种在执行字节码之前完成的预编译。从ORacle站点:

“理论上,每当调用Java方法时,JIT就开始使用, 它将该方法的字节码编译成本地机器码, 从而“及时”编译它以执行

JIT最可靠的效果是比较java本身是否使用JIT

JIT(即时编译)是在Java1.2中引入的,因此最好使用Java1.1和Java1.2执行相同的代码并检查性能

在Java1.2之前,java被认为是一种非常慢的语言,只有在引入JIT之后,它才被广泛应用于任何领域

相反,比较C++和C和java是比较困难的。潜在的C++比java快,因为JIT java也是一种解释语言。JIT编译很有帮助,因为执行频率更高的代码只被解释一次,而不是每次执行。 java和C++之间的差异可以涉及库是如何设计的、是否存在某些原始类型、如何编译代码、优化级别、在java如何配置GC等方面。 注意,根据编译参数和执行参数的不同,java和使用相同jdk和相同jvm的java之间也可能存在差异

不可能说Java比C或viceversa快,这种比较涉及太多参数。有时C++更快,有时java是最好的。
下面是Oracle关于JIT编译的参考:

JIT即时编译是一种在执行字节码之前完成的预编译。从ORacle站点:

“理论上,每当调用Java方法时,JIT就开始使用, 它将该方法的字节码编译成本地机器码, 从而“及时”编译它以执行

JIT最可靠的效果是比较java本身是否使用JIT

准时制