首页 / 知识
将Java编译为本机代码的性能提升?
2023-04-14 15:49:00

Performance gain in compiling java to native code?如今,从将Java编译为本地代码是否可以获得任何性能,还是随着时间的流逝,现代的热点编译器最终都会这样做吗? 一些轶事证据。我已经研究了一些对性能至关重要的实时交易金融应用程序。我同意弗兰克的观点,几乎每当您的问题不是缺少被编译时,而是您的算法或数据结构。现代的热点编译器非常适合使用正确的代码,例如CERN Colt库在为数字工作而编译,优化的Fortran的90%之内。 如果您担心速度,我真的会推荐一个好的Profiler并获得有关您瓶颈所在的证据-我使用YourKit感到非常满意。 在过去的几年中,我们仅在一次实例中求助于本机编译代码,因此我们可以使用CUDA并获得出色的GPU性能。 最近,在这里有一个类似的讨论,问题是字节码比本机代码有什么优势?您可以在该线程中找到有趣的答案。 您的问题有点大,答案相差很大
所有最新的JVM都使用JIT,但是在旧的JVM上,Java代码比本地代码慢几倍。 如果您的服务器长时间运行或成批运行,并且一次又一次地执行相同的代码,则两者之间的差异非常小。 我们用C ++和Java编写了相同的批处理,并使用不同的数据集运行它,结果相差约3秒,数据集需要5分钟到几个小时。 但是要小心,它们是特殊的情况,会有重要的区别,例如需要大量内存的批处理。 内存性能还是CPU性能?还是这些天都一样? 我唯一的证据是轶事,并且在另一个平台上:将大量需要CPU的应用程序移植到C#(.NET 2.0)之后,我没有发现性能上的实质损失(我认为10%的水平并不重要)。编写良好的代码似乎在各种体系结构上都表现良好。 大多数应用程序花费/浪费时间在:
因此,根据我的经验,除非您正在编写视频编解码器,否则与仅依赖于热点编译器相比,编译Java应用程序没有任何好处。
尝试用6种不同的实现方法来检查Hello-World只是为了检查开销 |
最新内容
相关内容
linux交叉编译命令?
linux交叉编译命令?,工具,平台,位置,网上,环境,基础,代码,编译器,路径,目标,安装完交叉编译器后输入arm-linux-gcc命令出现arm-none-linux-gnulinux编译源代码命令?
linux编译源代码命令?,工具,代码,百度,最新,环境,项目,系统,电脑,密码,内核,linux怎样编译git源码包1、linux的源码是在/usr/src这个目录下,此linux编译时显示命令?
linux编译时显示命令?,系统,基础,工具,代码,百度,下来,网上,命令,内核,文件,LINUX中此程序运行后,为何刷新不出命令提示符?1、有几个原因:一:你linux只能命令行编译?
linux只能命令行编译?,系统,代码,工具,软件,密码,平台,项目,设计,最新,设备,Linux能直接编译C语言吗?1、在Linux下面,如果要编译一个C语言源程linux命令行编译c?
linux命令行编译c?,代码,环境,系统,工具,平台,终端,程序,编辑,文件,源程序,在linux里,c程序的编辑、编译、调试的详细步骤是什么?编辑器用vi或linux查看性能的命令?
linux查看性能的命令?,系统,情况,信息,数据,状态,指标,第一,分析,命令,宏观,linux查看cpu个数和核心数linux怎么查看cpu的个数?我们一起来了解linux中如何编译命令?
linux中如何编译命令?,系统,代码,基础,暂停,环境,工具,百度,命令,文件,终端,在linux0.12系统中编译0.12内核时,使用什么命令利用tar命令,可以把linux编译连接命令?
linux编译连接命令?,系统,代码,环境,工具,文件,资料,电脑,百度,终端,命令,在linux0.12系统中编译0.12内核时,使用什么命令1、linux的源码是在/linux内核编译命令?
linux内核编译命令?,系统,软件,环境,电脑,内核,最新,下来,官网,体系,名字,在linux0.12系统中编译0.12内核时,使用什么命令使用lsmod命令也可显linux下编译文件命令?
linux下编译文件命令?,代码,工具,信息,文件,环境,系统,源程序,编译器,终端,语言,怎么在linux中编译与运行c++的原代码*.cpp文件安装gcc g++编linux编译项目的命令?
linux编译项目的命令?,系统,工作,地址,软件,工具,信息,代码,项目,命令,环境,linux能否用命令行编译keil1、.编译软件用sdcc 2.sdcc不支持keil51c编译linux命令源码?
编译linux命令源码?,下来,官网,系统,内核,环境,代码,软件,电脑,工具,源码,Linux源码包编译和安装linux下源码的安装由3个步骤组成:配置(configu