Criação de perfis e rastreamentos básicos (conceitos)
Meça o código com Stopwatch, crie pequenos escopos de medição, entenda os identificadores de correlação de rastreamentos e aprenda os fundamentos de higiene em microavaliações de desempenho.
Criação de perfis e rastreamentos básicos (conceitos) é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 3 aulas no total.
Noções básicas de medição de tempo e rastreamento
Objetivo:
- Medir caminhos críticos com Cronômetro
- Adicionar pequenos escopos de medição de tempo para blocos
- Usar IDs de correlação de rastreamento para vincular eventos
- Evitar medições excessivamente numerosas
Demonstração de Cronômetro
Use Cronômetro para medir o tempo do código; faça um aquecimento primeiro e repita o trabalho para reduzir as variações causadas pelo 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);
}
}
Auxiliar de escopo de medição de tempo
Envolva os blocos em um TimeScope para ver a duração de seções nomeadas sem repetir o código do Cronômetro.
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();
}
}
}
Demonstração de ID de correlação
Defina um ID de correlação (ActivityId) para vincular mensagens de rastreamento relacionadas entre chamadas.
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);
}
}
Visão geral da criação de perfis
- Ferramentas de criação de perfis por amostragem: capturam periodicamente instantâneos da pilha (baixa sobrecarga)
- Instrumentação: mede blocos específicos (Cronômetro/escopos de medição de tempo)
- Comece de forma ampla com amostragem; confirme com medições direcionadas
Boas práticas de medição
Dicas:
- Faça medições em Lançamento, com otimizações
- Evite Console.WriteLine dentro do código cronometrado
- Repita as execuções; informe as médias
- Meça tamanhos de entrada realistas
Regra para microcomparações de desempenho
Recapitulação
Recapitulação: use Cronômetro e pequenos escopos de medição de tempo para medir blocos; adicione um ID de correlação para vincular rastreamentos; faça medições de forma adequada (aquecimento, repetição, Lançamento).
Perguntas Frequentes
A aula “Criação de perfis e rastreamentos básicos (conceitos)” é grátis?
Sim — o texto completo de “Criação de perfis e rastreamentos básicos (conceitos)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 3 aulas no total.
O que vou aprender em “Criação de perfis e rastreamentos básicos (conceitos)”?
Meça o código com Stopwatch, crie pequenos escopos de medição, entenda os identificadores de correlação de rastreamentos e aprenda os fundamentos de higiene em microavaliações de desempenho. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Criação de perfis e rastreamentos básicos (conceitos)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Abstrações de registro, Debug/Trace
- Criação de perfis e rastreamentos básicos (conceitos)
- Padrões de proteção e validação