有没有人对标准的Java运行时基准Excelsior JET编译到原生?

Phi*_*lch 11 java performance compilation

有没有人尝试使用Excelsior JET对在普通Java运行时上及时运行的同一应用程序编译为本机的Java应用程序进行基准测试?我能找到的唯一基准是托管在Excelsior的网站上,用于单个应用程序; 我想看一些独立的结果.

我的应用程序具有高CPU和内存使用率(它是训练机器学习模型).我不希望使用Jet提高性能,但我可能需要在没有Java运行时可用的环境(因此编译为本机)上运行,我需要知道性能是否会更差.

我知道Excelsior有一个评估.可用,但我希望节省下载,配置,测试等时间......

Dmi*_*kov 22

免责声明:我为Excelsior工作.

为了回答你的问题,我所知道的最新的第三方基准测试结果就是这些,但我刚检查过 - 这个帖子已经超过四年......

现在,如果你允许我提供一些建议:

基于超过13年的Excelsior JET市场生活,我可以告诉您,您必须针对您的特定应用进行测试.没有基准测试可以让您了解应用程序在本机编译时的行为方式.正如我们所说,您的里程会有所不同.我们有客户报告我们在实验室中从未见过的速度提升,我们让潜在客户提前放弃评估,因为他们的应用程序变慢了.(后者经常由于配置错误而发生 - 例如并非所有类都被预编译 - 所以如果遇到类似的事情,请联系我们的工程师.)

还有一些案例研究在我们的网站上进行了性能比较(#1,#2),但当然这些是来自应用程序变得更快的用户.;)

2014年12月15日更新:需要注意的是:从Excelsior JET 10开始,64位版本在性能方面落后于32位版本,因为前者是基于新的,从头开始构建的编译器核心实施的优化程度较低.我们正在努力扭转这种局面,但是现在,如果性能对您很重要并且您没有任何真正的理由使用64位版本,例如大堆或需要与64位集成本机库,或者需要针对OS X,坚持使用经过验证的32位版本.

  • +1表示(免责声明加上平衡的答案,不闻"市场") (9认同)

Sim*_*mon 9

我使用Excelsior JET进行免费游戏.在我的测试中,游戏的运行速度不是越来越快,但是帧速率与Excelsior JET的一致性要高于Oracle的VM.使用JET,我们的游戏启动更好.JVM需要一段时间来预热并加载所有类,但是使用JET它会立即运行.

如果使用大量线程,Excelsior JET的内存消耗可能会更高一些 - 因为默认情况下Excelsior JET使用大的固定线程堆栈大小.但这可以配置 - 所以这不是问题.

通过电子邮件支持也非常好.你可以与工程师交谈,而不是支持人员.如果您碰巧找到了错误,通常只需要一天的时间.我还要注意,我有一些奇怪的不可再现的崩溃报告来自早期版本的JET(> 2岁左右)的用户.目前的版本(7.6,现在8.0)都是坚如磐石的.我们在万台机器上看不到任何崩溃.

简而言之:我可以推荐Excelsior JET,性能(在我们的例子中)和JVM一样好.