Kode Kotlin berjalan di atas JVM sehingga pemahaman tentang arsitektur JVM, garbage collector, dan memory model membantu saat men-debug masalah performa.
Pahami alur kompilasi Kotlin/JVM: dari source .kt menjadi bytecode .class oleh kotlinc, lalu dieksekusi oleh JVM.
Buka → # Bytecode FundamentalsBedah struktur file .class: constant pool, fields, methods, dan atribut, serta cara memeriksanya dengan javap.
Buka → # Heap dan StackPahami pembagian memori JVM: stack untuk primitif dan referensi, heap untuk objek, serta stack frame per pemanggilan method.
Buka → # Garbage CollectionPelajari algoritma garbage collection JVM: mark-and-sweep, generational heap, dan kolektor modern G1, ZGC, Shenandoah, serta stop-the-world pauses.
Buka → # Memory LeaksKenali pola umum memory leak di JVM: cache statis, listener tidak dihapus, ThreadLocal tidak dibersihkan, dan cara mendeteksinya via heap dump.
Buka → # JVM OptionsPelajari flag JVM yang paling sering dipakai: -Xmx, -Xms, -XX:+UseG1GC, -XX:+HeapDumpOnOutOfMemoryError, serta cara memverifikasinya.
Buka → # Profiling ToolsKenali alat profiling JVM: VisualVM, async-profiler, Java Flight Recorder, dan cara memilih sampler CPU, memory, atau allocation profile.
Buka → # JFR dan JDK Mission ControlPelajari Java Flight Recorder (JFR) dan JDK Mission Control (JMC) untuk continuous profiling dengan overhead sangat rendah.
Buka → # Memory PerformanceOptimasi performa memori: kapan memakai object pooling, menghindari autoboxing dengan IntArray, reuse buffer, dan pilihan Array<Int> vs IntArray.
Buka →