Go Academy · Pelajaran

Pembuatan Profil CPU dengan pprof

Mengumpulkan dan memvisualisasikan profil CPU

Pelajaran 2 dari 413 langkah

Pembuatan Profil CPU dengan pprof adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Apa itu pprof?

net/http/pprof dan paket runtime/pprof menyediakan data pembuatan profil yang menunjukkan bagian program yang menggunakan waktu CPU. CLI go tool pprof menganalisis profil.

Titik akhir HTTP pprof

Impor _ "net/http/pprof" untuk mendaftarkan titik akhir pembuatan profil di bawah /debug/pprof/ pada server HTTP yang sudah ada.

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe(":6060", nil))
}()

Mengambil profil CPU

Ambil profil CPU selama 30 detik melalui titik akhir HTTP:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

Pembuatan profil CPU berbasis berkas

Untuk program yang tidak memiliki server HTTP, gunakan runtime/pprof untuk menulis berkas profil:

f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workload

Pembuatan profil dalam pengujian

Jalankan pengujian dengan flag -cpuprofile dan -memprofile untuk membuat profil dengan beban pengujian yang realistis:

go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...

Mode interaktif go tool pprof

Buka profil dan jelajahi dengan perintah interaktif:

go tool pprof cpu.prof
(pprof) top        # top functions by CPU time
(pprof) list main  # annotated source
(pprof) web        # call graph in browser

Grafik nyala

Buat grafik nyala (memerlukan graphviz) dengan -http=:8080 untuk antarmuka web interaktif:

go tool pprof -http=:8080 cpu.prof

Menafsirkan keluaran top

top menampilkan fungsi yang diurutkan berdasarkan waktu mandiri (waktu dalam fungsi tersebut) dan waktu kumulatif (termasuk fungsi yang dipanggilnya). Fokuskan pada fungsi dengan waktu mandiri tinggi untuk menemukan peluang pengoptimalan langsung.

Profil goroutine

Titik akhir /debug/pprof/goroutine menampilkan semua jejak tumpukan goroutine. Gunakan ini untuk mendeteksi kebocoran goroutine atau goroutine yang terblokir.

go tool pprof http://localhost:6060/debug/pprof/goroutine

Pembuatan profil berkelanjutan

Untuk sistem produksi, gunakan layanan pembuatan profil berkelanjutan (Pyroscope, Datadog, Google Cloud Profiler) untuk mengambil profil tanpa menghentikan layanan.

pprof dalam CI

Bandingkan profil dari dua versi kode Anda untuk mendeteksi kemunduran kinerja sebelum mencapai produksi.

Pemeriksaan singkat

Apa yang ditunjukkan kolom "self" dalam keluaran top pprof?

Ringkasan: Pembuatan Profil CPU dengan pprof

Poin utama:

  • Impor net/http/pprof untuk titik akhir HTTP; runtime/pprof untuk berkas
  • go tool pprof -http=:8080 untuk antarmuka grafik nyala
  • top: waktu mandiri = biaya langsung; kumulatif = biaya total termasuk fungsi yang dipanggil
  • go test -cpuprofile untuk pembuatan profil tolok ukur
Gratis untuk memulai

Belajar Go dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pembuatan Profil CPU dengan pprof” gratis?

Ya — teks lengkap “Pembuatan Profil CPU dengan pprof” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pembuatan Profil CPU dengan pprof”?

Mengumpulkan dan memvisualisasikan profil CPU Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pembuatan Profil CPU dengan pprof” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menulis Benchmark dengan testing.B
  2. Pembuatan Profil CPU dengan pprof
  3. Pembuatan Profil Heap dan Alokasi
  4. Pelacakan Eksekusi
← Kembali ke Go Academy