Ho fatto un po 'di ricerche ma vedo soprattutto risposte C++. Il più vicino a cui sono arrivato è this. Ho visto anche this page ma in realtà non spiega nulla.Java: il codice inlining avrà dei vantaggi?
Ci sono dei vantaggi se utilizzo il secondo pezzo di codice? Ci saranno differenze di prestazioni notevoli? Che mi dici della memoria? Cosa succede se è fatto ripetutamente?
In questo momento ho questa funzione. Sono sicuro che il vantaggio di questo è la leggibilità del codice:
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);
}
Ora, io ho questo secondo frammento di codice:
private static Bitmap resize(Bitmap image, int maxWidth) {
return Bitmap.createScaledBitmap(image, maxWidth, Math.round(image.getHeight() * (float) maxWidth/image.getWidth()), true);
}
Un esempio più semplice potrebbe essere:
for(;;) {
String foo = "hello";
Console.print(foo + "world");
}
contro
for(;;) {
Console.print("hello" + "world");
}
Credo che il compilatore ottimizzi comunque le cose, quindi gli esempi di coppie di test potrebbero funzionare allo stesso modo. In ogni caso, l'inlining può facilitare la lettura del codice. –
Per gli esempi forniti non ci saranno differenze di prestazioni. Non preoccupatevi nemmeno delle "ottimizzazioni" come queste, basta fare ciò che si legge meglio. –
@LouisWasserman Roger that – pandalion98