
Manajemen Memori
Stack vs heap, escape analysis, garbage collector, memory profiling, pprof, memory leaks
1Apa perbedaan utama antara alokasi pada stack dan alokasi pada heap di Go?
Apa perbedaan utama antara alokasi pada stack dan alokasi pada heap di Go?
Jawaban
Stack dikelola secara otomatis dan alokasinya sangat cepat (sekadar pergeseran stack pointer). Variabel pada stack otomatis dibebaskan ketika fungsi return. Heap memerlukan garbage collector untuk membebaskan memori dan alokasinya lebih lambat karena melibatkan runtime Go. Variabel yang bertahan di luar fungsi atau yang ukurannya tidak diketahui saat kompilasi akan ditempatkan di heap.
2Apa itu escape analysis di Go?
Apa itu escape analysis di Go?
Jawaban
Escape analysis adalah analisis statis yang dilakukan oleh kompiler Go untuk menentukan apakah sebuah variabel dapat tetap berada di stack atau harus dialokasikan di heap. Jika kompiler mendeteksi bahwa sebuah variabel direferensikan di luar fungsi pembuatannya (melalui pointer yang dikembalikan, penyimpanan dalam variabel global, dll.), variabel tersebut 'escape' dan akan dialokasikan di heap. Analisis ini secara otomatis mengoptimalkan alokasi memori.
3Bagaimana cara melihat hasil escape analysis saat kompilasi?
Bagaimana cara melihat hasil escape analysis saat kompilasi?
Jawaban
Flag -gcflags=-m memungkinkan untuk melihat keputusan escape analysis. Menggunakan -m=2 atau -m=3 memberikan lebih banyak detail tentang mengapa sebuah variabel escape. Misalnya 'go build -gcflags=-m=2' akan menampilkan pesan seperti 'moved to heap: x' untuk menunjukkan bahwa sebuah variabel dipindahkan ke heap. Alat ini penting untuk mengoptimalkan alokasi memori dalam kode kritis.
Dalam kasus apa sebuah variabel lokal escape ke heap?
Apa peran utama garbage collector di Go?
+21 pertanyaan wawancara
Topik wawancara Go lainnya
Dasar-Dasar Go
Struktur Data Go
Interface Go
Penanganan Error
Dasar-Dasar Goroutine
Channels
Go Modules
Server HTTP
Klien HTTP
Enkoding JSON
Database/SQL
Paket context
Testing
Pola Concurrency
Primitif Sinkronisasi
Framework web Go
Desain API REST
gRPC
Reflection
Optimasi Performa
Generics
Go Design Patterns
Microservices
Keamanan dan Autentikasi
Docker & Containerization
Kubernetes Basics
Go Tingkat Lanjut
Pengembangan CLI
Kuasai Go untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis