为何不能过多的使用内联(为何有时内联无法提升性能)?

内联带来的性能提升?

1、避免开销大的方法调用。

2、调用间优化。某一方法的调用过程,基于对上下文场景更加全面的理解,使得编译器在源代码层面及机器代码层面对方法进行优化。


为啥不能内联全部方法?

1、内联所带来的代码膨胀有时是无法接受的。

2、单个内联方法拥有多个实例,每个实例都要有自身的地址空间,因此它们消耗的缓存也相互独立,这样将减少有效的缓存空间而造成命中率下降。而且,内联方法多个缓存实例被清除出并且需要重新加载的可能性更大。因此,内联产生的方法调用和返回方面的性能提升,可能会被因为内联而导致的缓存性能锐减所所抵消,在涉及大规模方法时,这类问题尤为突出。

3、如果方法的实现是易变的,则不应将其内联,否则修改将可能引起大规模的重新编译。

4、递归方法内联可能会导致死循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值