Garbage Collection: Як працює сміттевоз в Java
Однією з найбільших переваг Java (і водночас причиною палких суперечок) є автоматичне керування пам’яттю. Розробникам на Java не потрібно вручну виділяти пам’ять і самостійно звільняти її, як це роблять у C або C++ за допомогою malloc() та free(). За нас цю «брудну роботу» виконує таємничий та потужний механізм — Garbage Collector (GC), або збирач сміття. Але як саме він розуміє, що об’єкт більше не потрібен? Чому іноді додаток починає «заїдати» (так звані…
Оптимізуємо це: GraalVM Native Image, Leyden та CRaC
Традиційно Java славилася своєю концепцією «Write Once, Run Anywhere» завдяки віртуальній машині JVM та JIT-компіляції (Just-In-Time). Проте у світі мікросервісів, безсерверних обчислень (Serverless) та Kubernetes критично важливими стали швидкість старту застосунку та мінімальне споживання оперативної пам’яті (RSS). У відповідь на ці виклики екосистема Java висунула новаторські потужні технології: GraalVM Native Image, Project Leyden та CRaC (Coordinated Restore at Checkpoint). Давайте для початку трохи детально розберемося ключові компоненти, архітектуру…





