有没有人尝试过对使用Excelsior JET编译为原生的Java应用程序进行基准测试,以使其与在正常的Java运行时中准时运行的同一应用程序相对比?我能找到的唯一基准是在Excelsior的网站上托管的,并且是针对单个应用程序的。我希望看到一些独立的结果。
我的应用程序同时具有很高的CPU和内存使用率(它是训练机器学习模型)。我并不期望使用Jet会提高性能,但是我可能需要在没有Java运行时可用的环境上运行(因此可以编译为 native ),并且我需要知道性能是否会更差。
我知道Excelsior有一个评估。可用,但我希望节省下载,配置,测试等的时间...
最佳答案
免责声明:我为Excelsior工作。
为了回答您的问题,我知道的最新第三方基准测试结果是 these ,但我刚刚检查过-该帖子已经使用了四年以上...
现在,如果您允许我提供一些建议:
基于Excelsior JET市场已有13年以上的历史,我可以告诉您,您必须针对您的特定应用程序进行测试。没有基准可以让您知道应用程序在本地编译时的行为。正如我们所说,您的里程会有所不同。我们有客户报告说速度在增加,这是我们实验室中从未见过的,而且由于他们的应用程序变得越来越慢,我们也有可能放弃早期的评估。 (后一种情况通常是由于配置错误引起的-例如,并非所有类都进行了预编译-因此,如果遇到类似情况,请与我们的工程师联系。)
我们的网站(#1,#2)上也有一些案例,其中有性能比较,但是当然这些案例来自应用程序变得更快的用户。 ;)
,2014年12月15日更新:请注意:自Excelsior JET 10起,64位版本在性能方面已经落后于32位版本,因为前者基于全新的,从头开始构建的编译器内核,实现的优化较少。我们正在努力扭转这种情况,但就目前而言,如果性能对您很重要,并且您没有任何真正好的理由使用64位版本,例如大堆或需要与64位集成 native 库,或者需要定向到OS X,请坚持使用经过实践检验的真正的32位版本。