Оптимізація коду в Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood
Ручне керування пам'яттю (C/C++)
$$
Збирання сміття в Java

Компроміси продуктивності GC
$$
Алгоритми GC
// Погано — створювати багато короткоживучих об'єктів for (int i = 0; i < 1000000; i++) { new Object(); // Одразу стає сміттям }// Краще — перевикористовувати об'єкти Object obj; for (int i = 0; i < 1000000; i++) { obj = new Object(); // Лише одне посилання }
// Уникайте цього в критично важливому за продуктивністю коді String result = ""; for (int i = 0; i < 100000; i++) { result += i; // Щоразу створює новий String }// Кращий підхід StringBuilder builder = new StringBuilder(); for (int i = 0; i < 100000; i++) { builder.append(i); // Перевикористовує той самий буфер } String result = builder.toString();
// Передбачувані розгалуження допомагають JIT-оптимізації
if (value > 0) {
// Код A — частий шлях
} else {
// Код B — рідкісний шлях
}
Оптимізація коду в Java