Pembuatan profil & jejak dasar (konsep)
Ukur kode dengan Stopwatch, buat cakupan pengukuran waktu kecil, pahami ID korelasi jejak, dan pelajari kebersihan dasar tolok ukur mikro.
Pembuatan profil & jejak dasar (konsep) adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. 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 C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.
Dasar-dasar pengukuran waktu & pelacakan
Tujuan:
- Ukur jalur panas dengan Stopwatch
- Tambahkan cakupan pengukuran waktu kecil untuk blok kode
- Gunakan ID korelasi pelacakan untuk menghubungkan peristiwa
- Hindari pengukuran yang terlalu ramai
Demo Stopwatch
Gunakan Stopwatch untuk mengukur waktu kode; lakukan pemanasan terlebih dahulu dan ulangi pekerjaan tersebut untuk mengurangi gangguan JIT.
using System;
using System.Diagnostics;
using System.Threading;
// Simple loop timing with warmup; C# 6 compatible.
public class Program
{
static int Work(int n)
{
int s = 0;
for (int i = 0; i < n; i++) s += i; // small CPU work
return s;
}
public static void Main(string[] args)
{
// Warm up (JIT/caches)
Work(10000);
var sw = Stopwatch.StartNew();
for (int r = 0; r < 10; r++)
{
Work(20000);
}
sw.Stop();
Console.WriteLine("Elapsed ms (10 runs): " + sw.ElapsedMilliseconds);
}
}
Helper cakupan pengukuran waktu
Bungkus blok kode dalam TimeScope untuk melihat durasi bagian bernama tanpa mengulangi kode Stopwatch.
using System;
using System.Diagnostics;
// A small scope that times a block and prints on dispose.
public sealed class TimeScope : IDisposable
{
private readonly string _name;
private readonly Stopwatch _sw;
public TimeScope(string name)
{
_name = name;
_sw = Stopwatch.StartNew();
}
public void Dispose()
{
_sw.Stop();
Console.WriteLine(_name + " took " + _sw.ElapsedMilliseconds + " ms");
}
}
public class Program
{
static void DoWork()
{
// pretend work
long s = 0;
for (int i = 0; i < 300000; i++) s += i;
if (s == -1) Console.WriteLine();
}
public static void Main(string[] args)
{
using (new TimeScope("DoWork"))
{
DoWork();
}
}
}
Demo ID korelasi
Tetapkan ID korelasi (ActivityId) untuk menghubungkan pesan pelacakan terkait di berbagai pemanggilan.
using System;
using System.Diagnostics;
// Use a correlation ID so related trace lines can be grouped.
public class Program
{
public static void Main(string[] args)
{
Trace.Listeners.Clear();
Trace.Listeners.Add(new ConsoleTraceListener());
Guid id = Guid.NewGuid();
Trace.CorrelationManager.ActivityId = id;
Trace.TraceInformation("Start request");
// ... do work
Trace.TraceInformation("Processing step A");
Trace.TraceInformation("Processing step B");
Trace.TraceInformation("End request");
Console.WriteLine("ActivityId: " + id);
}
}
Ringkasan pembuatan profil
- Profiler berbasis sampling: ambil snapshot tumpukan secara berkala (beban rendah)
- Instrumentasi: ukur blok tertentu (Stopwatch/cakupan pengukuran waktu)
- Mulai secara luas dengan sampling; konfirmasi dengan pengukuran terarah
Kebersihan pengukuran
Kiat:
- Lakukan pengukuran dalam Release dengan optimisasi
- Hindari Console.WriteLine di dalam kode yang diukur
- Ulangi proses; laporkan nilai rata-rata
- Ukur ukuran masukan yang realistis
Aturan tolok ukur mikro
Rangkuman
Rangkuman: Gunakan Stopwatch dan cakupan pengukuran waktu kecil untuk mengukur blok kode; tambahkan ID korelasi untuk menghubungkan pelacakan; lakukan pengukuran dengan benar (pemanasan, pengulangan, Release).
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pembuatan profil & jejak dasar (konsep)” gratis?
Ya — teks lengkap “Pembuatan profil & jejak dasar (konsep)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Pembuatan profil & jejak dasar (konsep)”?
Ukur kode dengan Stopwatch, buat cakupan pengukuran waktu kecil, pahami ID korelasi jejak, dan pelajari kebersihan dasar tolok ukur mikro. Kamu berlatih C# 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 C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# 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 3.
Berapa lama pelajaran “Pembuatan profil & jejak dasar (konsep)” 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 C# Academy ini?
Ya. Setiap pelajaran C# 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
- Abstraksi logging, Debug/Trace
- Pembuatan profil & jejak dasar (konsep)
- Pola penjagaan & validasi