java– 在编译器优化的同一语句中多次调用同一个方法?

java– 在编译器优化的同一语句中多次调用同一个方法?,第1张

概述假设我在Java8中做了类似的事情(特别是Android)Stringname=someObject.getName()!=null?someObject.getName():"null";并且方法getName()可能会有很多调用其他方法来解析名称.还假设我经常调用这段代码.做这样的事情会更好,性能更好吗?Stringname=someObject.ge

假设我在Java 8中做了类似的事情(特别是Android)

String name = someObject.getname() != null ? someObject.getname() : "null";

并且方法getname()可能会有很多调用其他方法来解析名称.还假设我经常调用这段代码.

做这样的事情会更好,性能更好吗?

String name = someObject.getname();name = name != null ? name : "null";

解决方法:

这看起来像是一种可能的优化,称为CSE; JVM AFAIK做到了这一点(但不确定AndroID).

但这很大程度上取决于getname的作用,如果它在内部分配其他对象并做其他一些事情.不幸的是,我甚至无法告诉如何证明我错了或在这里(可能需要调查);老实说,我有自己这样做的习惯.例如:

for(int i=0;i<List.size();++i){}

我尝试在循环之前总是提取int size = List.size();即使这在我的理解中受到标量替换优化的影响.

总结

以上是内存溢出为你收集整理的java – 在编译器优化的同一语句中多次调用同一个方法?全部内容,希望文章能够帮你解决java – 在编译器优化的同一语句中多次调用同一个方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存