Код IT
← Каталог

Сборка и культура производительности — 1. Разбор реальных утечек памяти

Фрагмент из «Сборка и культура производительности»: 1. Разбор реальных утечек памяти.

java runtime-architectureencyclopedia116 embed URL статья в энциклопедии
Java main.java
public class CacheLeak {
    private static final Map<String, byte[]> cache = new HashMap<>();
    
    public void addToCache(String key, byte[] Данные) {
        cache.put(key, Данные); // Данные накапливаются бесконечно
    }
    
    // Решение: использование WeakHashMap или ограничение размера
    private static final Map<String, byte[]> boundedCache = 
        Collections.synchronizedMap(new LinkedHashMap<>() {
            protected boolean removeEldestEntry(Map.Entry eldest) {
                return size() > 1000; // Ограничение 1000 элементов
            }
        });
}
public class CacheLeak {
    private static final Map<String, byte[]> cache = new HashMap<>();
    
    public void addToCache(String key, byte[] Данные) {
        cache.put(key, Данные); // Данные накапливаются бесконечно
    }
    
    // Решение: использование WeakHashMap или ограничение размера
    private static final Map<String, byte[]> boundedCache = 
        Collections.synchronizedMap(new LinkedHashMap<>() {
            protected boolean removeEldestEntry(Map.Entry eldest) {
                return size() > 1000; // Ограничение 1000 элементов
            }
        });
}