社区
Java SE
帖子详情
java编译器的内联是什么意思?
thinkhejie
2009-10-30 09:34:09
java编译器的内联是什么意思?
哪位高手知道吗?请指教了。
...全文
298
3
打赏
收藏
java编译器的内联是什么意思?
java编译器的内联是什么意思? 哪位高手知道吗?请指教了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lz12366007
2009-11-01
打赏
举报
回复
关键字: 内联函数
以前用过C++,知道它里面有一个内联函数这个概念,一般情况用inline关键字修饰,在C++定义类时,那种写中Class定义里面的函数,也被编译器当做内联函数处理。
说了这么多,还没说什么是内联函数。所谓内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。
现在该说Java了,对应Java语言中也有一个关键字final来指明那个函数是内联的,例:
Java代码 复制代码
1. public final void doSomething() {
2. // to do something
3. }
public final void doSomething() {
// to do something
}
该方法在被调用时,会在调用处直接展开使用,从而提高程序执行速度。此外final关键字还有一个作用,防止doSomething方法在子类中被覆盖,如果你希望doSomething是一个最终行为的话,那它应该被设计成final。
内联不一定好,当被指定为内联的方法体很大时,展开的开销可能就已经超过了普通函数调用调用的时间,引入了内联反而降低了性能,因为在选择这个关键字应该慎重些,不过,在以后高版本的JVM中,在处理内联时做出了优化,它会根据方法的规模来确定是否展开调用。
feiyangdesky
2009-10-30
打赏
举报
回复
什么???
Brodie
2009-10-30
打赏
举报
回复
google, java inline compile, the first question.
jitwatch:Java HotSpot JIT编译器的日志分析器可视化工具。 检查
内联
决策,热门方法,字节码和汇编。 在JavaFX用户界面中查看结果
JITWatch HotSpot JIT编译器的日志分析器和可视化工具。 JITWatch 视频介绍 我在JITWatch 上的LJC闪电演讲中的 有关说明和屏幕截图,请参见Wiki。 JITWatch用户界面是使用JavaFX构建的。 这包含在Oracle JDK中。 如果您使用的JDK不包含JavaFX(例如Azul Zulu或Linux上的某种打包的OpenJDK),则可以从下载预构建的OpenJFX jar,并将其放入构建类路径中。 蚂蚁 ant clean compile test run 专家 mvn clean compile test exec:java 摇动 gradl
Java理论与实践:动态编译与性能测量
本文介绍了动态编译简史以及动态编译与评测的关系,为编写好评测,优化编译器要擅长找出死代码清除死代码--对于程序执行的输出没有作用的代码。如果您想测量X的性能,一般情况下您是想测量它编译后的性能,而不是它的解释性能。要做到这样,需要“预热”JVM,编译器在为执行计时之前,就有足够的运行解释的代码,并用编译的代码替换解释代码。编译器要进行主动的
内联
决策,才能得到更高的性能,然后当这些决策依据的假设不再有效时,就会收回这些决策,即所谓的动态反优化。
Compiler2017:SJTU ACM类Compiler 2017课程的编译器
适用于编译器的Malic 2017 上海交通大学ACM课程课程的。 源是一种类似Java的语言。 目标是x86-64 NASM。 通过各种优化,该编译器在该课程的性能竞赛中排名第一。 优化 指令选择 功能
内联
控制流分析多余的跳跃消除 数据流分析 通用子表达式消除 不断传播和折叠 无效代码消除 注册分配 乔治·拉尔的完整实施; Appel,Andrew W.(1996年5月)。 “迭代寄存器合并” 有关更多详细信息,请参阅 建立 bash build.bash 用法 Usage: java -jar Malic.jar [options] Options: -in
: M* language source code -out
: x86-64 NASM output -help : print this help page
java中的
内联
是
什么意思
_Java之
内联
函数
以前用过C++,知道它里面有一个
内联
函数这个概念,一般情况用inline关键字修饰,在C++定义类时,那种写中Class定义里面的函数,也被编译器当做
内联
函数处理。说了这么多,还没说什么是
内联
函数。所谓
内联
函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。现在该说Java了,对应Java语言中也有一个关键字fin...
【Java学习笔记(一百一十三)】之编译器优化(方法
内联
,逃逸分析,公共子表达式消除,数组边界检查)
本文章由公号【开发小鸽】发布!欢迎关注!!! 老规矩–妹妹镇楼: 一. 编译器优化技术 (一) 概述 编译器的目标是将程序代码翻译为本地机器码,输出代码优化质量的高低是决定编译器优秀与否的关键,所有的优化手段都是建立在代码的中间表示或者是机器码之上的,而不是Java源码。 (二) 方法
内联
1. 概述 方法
内联
是编译器最重要的优化手段,因为除了消除方法调用的成本之外,它更重要的意义
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章