【发布时间】:2016-03-30 11:20:35
【问题描述】:
我做了一些研究,但我大多看到 c++ 的答案。我最接近的是this。我也看到了this page,但它并没有真正解释什么。
如果我使用第二段代码有什么好处吗?会有明显的性能差异吗?内存呢?如果重复执行怎么办?
现在我有这个功能。我确信这样做的好处是代码可读性:
private static Bitmap resize(Bitmap image, int maxWidth) {
float widthReducePercentage = ((float) maxWidth / image.getWidth());
int scaledHeight = Math.round(image.getHeight() * widthReducePercentage);
return Bitmap.createScaledBitmap(image, maxWidth, scaledHeight, true);
}
现在,我有了第二个 sn-p 代码:
private static Bitmap resize(Bitmap image, int maxWidth) {
return Bitmap.createScaledBitmap(image, maxWidth, Math.round(image.getHeight() * (float) maxWidth / image.getWidth()), true);
}
一个更简单的例子是:
for(;;) {
String foo = "hello";
Console.print(foo + "world");
}
对
for(;;) {
Console.print("hello" + "world");
}
【问题讨论】:
-
我相信编译器无论如何都会优化东西,因此您的测试对示例可能会执行类似的操作。无论如何,内联可以让代码更容易阅读。
-
对于您提供的示例,性能不会有任何差异。甚至不要为这样的“优化”而烦恼,只要做最好的事情。
-
@LouisWasserman Roger 那
-
第二个优化示例:
Console.print("hello world");这节省了字符串连接(在每次迭代中),这很昂贵。
标签: java android performance memory-management inline