Contadores de desempenho no .NET Compact Framework
O .NET Compact estrutura não dá suporte a PerformanceCounter objetos porque eles não pertencem ao Windows CE e o .NET Compact estrutura. Entretanto, o .NET Compact Framework contém um conjunto de contadores de desempenho predefinidos para analisar os tipos de carga que seu aplicativo tem no .NET Compact Framework.Os contadores não são extensíveis.
Você pode gerar um arquivo no seu dispositivo contendo estatísticas de desempenho sobre seu aplicativo.Para obter um procedimento passo a passo, consulte Como: Gerar estatísticas de desempenho.
Os contadores de desempenho são úteis para compreender o impacto de coleta de lixo e compilação Just-In-Time no desempenho do aplicativo.Você pode determinar onde devem ocorrer otimizações dessas estatísticas.
O arquivo estatísticas lista os contadores de desempenho com as seguintes colunas.
Coluna |
Descrição |
---|---|
Total |
Somatório de ocorrências. |
Último Dado |
O último elemento de informação. |
N |
O número de ocorrências. |
Média |
O intermediário entre outros valores. |
Min |
O valor mínimo. |
Max |
O valor máximo. |
Contadores do .NET Compact Framework
Os contadores de desempenho são organizados nas seguintes categorias:
Carregador |
Compilação JIT |
Genéricos |
Exceções |
Bloqueios e segmentos |
Interoperabilidade |
Coleta de lixo |
Rede |
Memória |
Windows Forms |
Contadores carregadores
sistema autônomo seguintes contadores pertencem à parte do common linguagem tempo de execução (CLR) que é responsável por resolver e carregar componentes referenciados pelo seu aplicativo, sistema autônomo assemblies e classes.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Tempo total de execução do programa (ms) RunTime |
O time decorrido, em milissegundos, de chamada do CLR. |
Calculado |
Domínios de aplicativo criados Domínios napplication |
O número de domínios de aplicativo criado no processo do aplicativo. |
Simples |
Domínios de aplicativo não carregados domínios não carregados napplication |
O número de domínios de aplicativo que tenha sido descarregado durante o time de execução do aplicativo. |
Simples |
Módulos carregados nAssembliesloaded |
O número de módulos (assemblies) que tiverem sido carregados em todos os domínios de aplicativo para o aplicativo. |
Simples |
Classes carregadas nClassesloaded |
O número de classes que tiverem sido carregados em todos os domínios de aplicativo durante o time de execução do aplicativo. |
Simples |
Métodos carregados nMethodsloaded |
A contagem total dos métodos carregados em todos os domínios de aplicativo durante o time de execução do aplicativo. |
Simples |
Contadores genéricos
Os contadores genéricos são carregador contadores específicos para o recurso genéricos do CD.O CLR usa genéricos internamente.Conseqüentemente, você poderá ver valores esses contadores, mesmo se seu aplicativo não usa explicitamente os genéricos.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Tipos fechados carregados nInstGenericTypesLoaded |
A contagem dos únicos tipos genéricos que tiverem sido carregados em todos os domínios de aplicativo. A tipo fechado é uma classe genérica que tenha sido limite com um tipo de dados específico.Por exemplo, uma instância de MyGenericType<Int32> é um tipo fechado. |
Simples |
Tipos fechados carregados por definição nMaxClosedTypes |
O número máximo dos únicos tipos genéricos criados para uma definição determinada entre todos os domínios de aplicativo. Por exemplo, se um aplicativo instancia MyGenericType<Int32>, MyGenericType<String>, e MyGenericType<Single>, o número de tipos fechados carregados para o MyGenericType<T> a definição é três (3). Um grande número (várias centenas ou mais) na coluna Max pode indicar pressão do conjunto de trabalho em termos de código com compilação JIT e estruturas de dados CLR. |
StaticOnly |
Tipos abertos carregados nOpenTypesLoaded |
A contagem de tipos genéricos abertos criados em todos os domínios de aplicativo. An em em aberto tipo é uma classe genérica que foi carregado, mas não foi vinculada com um tipo de dados específico.Normalmente tipos abertos são criados apenas em cenários de reflexão. Por exemplo, carregar uma instância de MyGenericType<T> usando reflexão incrementará o contador de em em aberto tipos carregados. Quando o tipo for limite, sistema autônomo em MyGenericType<String>, torna-se um tipo fechado e o contador fechado tipos carregados é incrementado. O CLR do .NET Compact estrutura usa a reflexão internamente e podem ser de fonte para o em aberto tipos.Por exemplo, serialização de XML e Web services usam reflexão internamente. |
Simples |
Métodos fechados carregados nInstGenericMethodsLoaded |
A contagem dos únicos genéricos métodos que tiverem sido carregados em todos os domínios de aplicativo. A método fechado é um método genérico que foi limite com um tipo de dados específico.O tipo que contém o método pode ou não ser um tipo genérico.Por exemplo, uma instância de MyType.ProcessData<Int32>() é um método fechado. |
Simples |
Métodos fechados carregados por definição nMaxClosedMethods |
O número máximo dos únicos métodos genéricos criados para uma definição determinada entre todos os domínios de aplicativo genérico. Esse contador é muito semelhante ao fechado tipos carregados por definição do contador.Usando as seguintes instâncias de MyType.ProcessData<Int32>(), MyType.ProcessData<String>(), e MyType.ProcessData<Single>() criará três métodos fechados para o MyType.ProcessData<T>() definição. sistema autônomo ocorre com o fechado tipos carregados por definição do contador, um grande número (várias centenas ou mais) na coluna Max pode indicar pressão do conjunto de trabalho em termos de código com compilação JIT e estruturas de dados CLR. |
StaticOnly |
Métodos abertos carregados nOpenMethodsLoaded |
A contagem dos métodos genéricos abertos criados entre todos os domínios de aplicativo.Normalmente métodos abertos são criados apenas em cenários de reflexão.An o método em aberto é um método genérico que foi carregado, mas não limite a um tipo específico. O tempo de execução do .NET Compact estrutura usa a reflexão internamente e pode ser fonte dos métodos abertos. |
Simples |
Contadores de segmentos e de bloqueios
Os seguintes contadores pertencem a segmentação, bloqueios, timers, e pools de segmento.Esses contadores podem ajudar a identificar problemas de desempenho relacionados ao threading, fornecendo dados no thread, temporizador e uso de bloquear durante o time de execução do seu aplicativo.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Segmentos no pool de segmento nThreads |
O número de segmentos atualmente no pool de segmento. Esse contador considera os threads que são iniciados usando o QueueUserWorkItem método. Esse contador não inclui segmentos que são iniciados usando o Start método. |
MinMax |
timers pendentes nPendingTimers |
O número de timers atualmente na fila. |
MinMax |
Timers agendados nTimersStarted |
O número de timers que estão atualmente em execução ou agendados para serem executados. |
Simples |
Timers atrasados pelo limite do pool de segmento nTimersDelayed |
A contagem de timers que tiverem sido atrasados pelo limite pool de segmento. |
Simples |
Itens de trabalho enfileirados nWorkItemsQueued |
A contagem de itens de trabalho na fila para o pool de segmento. |
Simples |
Chamadas Monitor.Enter não contestadas nUncontestedMonitor |
Contagem das chamadas feitas para o Enter método que não foram contested. |
Simples |
Chamadas Monitor.Enter contestadas nContestedMonitor |
Contagem das chamadas feitas para Enter foram contested. Em aplicativos multissegmentados, se Thread1 está mantendo um bloquear e Thread2 precisa do código de acesso que é protegido pelo bloquear de chamadas monitor.Enter Contested contador é incrementado. |
Simples |
Lixo coleção contadores
Os seguintes contadores pertencem a operações de coleta de lixo.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Máximo de Bytes alocados (nativo + gerenciado) cbPeakMemUsage |
O número máximo de bytes em uso pelo CLR incluindo memória nativa e gerenciada. |
Calculado |
Objetos Gerenciados alocados nObjectsAllocated |
A contagem de objetos alocados pelo coletor de lixo. |
Simples |
Objetos gerenciados não utilizados alocados nObjectsAllocatedNotUsed |
A contagem de objetos alocados que nunca foram usados. |
Simples |
Bytes Gerenciados alocados cbAllocated |
A contagem de bytes alocados pelo coletor de lixo. |
Complexo |
Bytes gerenciados não utilizados alocados cbAllocatedNotUsed |
A contagem de bytes alocados que nunca foram usados. |
Complexo |
Objetos String Gerenciados alocados nStrings |
O número de objetos string gerenciados alocados pelo coletor de lixo. |
Simples |
Bytes de objetos String alocados nStringBytes |
A contagem de bytes de objetos string alocados pelo coletor de lixo. |
Simples |
Coleções de lixo (GC) nGC |
O número de vezes que o coletor de lixo foi executado. |
Simples |
Bytes coletados por GC cbGarbage |
A contagem de bytes coletados pelo coletor de lixo. |
Complexo |
Bytes gerenciados em uso após GC cbLive |
O número de bytes alocados para objetos do live após a última coleta de lixo. |
MinMax |
Total de bytes em uso após GC cbWorkingSetMem |
O número de bytes de memória, nativa e gerenciada, em uso após a última coleta de lixo. |
MinMax |
Compactações GC nCompactions |
O número de vezes o coletor de lixo compactou a pilha. |
Simples |
Pitchings de código nPitches |
O número de vezes que o coletor de lixo descartou código compilado JIT. |
Simples |
Chamadas para GC.Collect nInduced |
O número de vezes que o aplicativo tiver chamado o Collect método. |
Simples |
Tempo de latência GC (ms) msLatency |
O tempo total, em milissegundos, que o coletor de lixo demorou para coletar objetos e compactar a pilha. O time de latência do coletor de lixo inclui a time para coletar objetos gerenciado que não estão mais no escopo e a time de compactação, se necessário, da pilha de coletor de lixo. |
Complexo |
Objetos fixados nPinned |
A contagem de objetos fixados encontrados ao executar uma coleta de lixo. Objetos fixados são objetos cujos locais na memória não é possível alterar.Por exemplo, um buffer de memória que está sendo usado para se comunicar entre código gerenciado e é um objeto fixado.Objetos fixados não podem ser movidos pelo coletor de lixo durante a compactação de heap. |
Simples |
Objetos movidos por Compactador nObjMoved |
A contagem de objetos movidos pelo coletor de lixo durante uma compactação. |
Simples |
Objetos não movidos por Compactador nObjNotMoved |
A contagem dos objetos que não foram movidos pelo coletor de lixo durante uma compactação. Objetos não podem ser movidos por vários motivos.Alguns objetos não podem ser movidos, mas esses objetos são raros.Outros objetos não são movidos porque eles são uma parte da heap não precisa ser compactado. |
Simples |
Objetos Finalizados nFinalizersRun |
A contagem de objetos para os quais um finalizador tiver sido executado. |
Simples |
Tipos de valor convertidos nBoxes |
O número de tipos de valor que tiverem sido convertidos. |
Simples |
Contadores de memória
Os seguintes contadores pertencem à memória heap gerenciada pelo coletor de lixo.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Heap de processo HeapDefault |
O número de bytes atualmente em uso pelo heap padrão do CLR. A heap de processo contém a memória alocada pelo CLR não se ajustam outros heaps listados nesta tabela. |
MinMax |
heap temporário HeapShortTerm |
O número de bytes atualmente em uso pelo heap temporário do CLR. A heap termo Short contém a memória alocada pelo CLR para uso temporário. |
MinMax |
Heap JIT HeapJitCodeBuffer |
O número de bytes em uso pelo heap do compilador JIT. JIT heap contém o código nativo gerado quando o compilador JIT do .NET Compact estrutura compila um método gerenciado.Compilação JIT ocorre sempre que um método gerenciado é executado pela primeira vez ou na primeira vez que um método é executado depois que código será descartado. |
MinMax |
Heap do domínio de aplicativo HeapAppDomain |
O número de bytes em uso pelo heap do domínio do aplicativo do CLR. A heap de domínio de aplicativo contém a representação dinâmica dos metadados usados pelo carregador do assembly do CLR. |
MinMax |
Heap GC HeapGC |
O número de bytes em uso pelo heap do coletor de lixo. A heap de GC contém a memória alocada por aplicativos e o .NET Compact estrutura. |
MinMax |
Contadores de compilação JIT
Os seguintes contadores pertencem a operações do compilador JIT.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Jitted bytes nativos cbJittedNative |
A contagem de bytes de código nativo gerados pelo compilador JIT. |
Complexo |
Métodos Jitted nMethodsJitted |
A contagem de métodos gerados pelo compilador JIT. |
Simples |
Bytes Pitched cbPitched |
A contagem de bytes de código nativo gerado pelo compilador JIT que foram descartados. |
Complexo |
Métodos Pitched nMethodsPitched |
A contagem de métodos gerados pelo compilador JIT que foram descartados. A menos que seu aplicativo foi movido para o plano de fundo durante o seu time de execução, qualquer valor positivo para o contador métodos Pitched indica que o aplicativo foi executado sob pressão de memória. |
Simples |
Tempo de latência de descarte de método (ms) msPitchLatency |
O tempo total, em milissegundos, gasto discartando métodos gerados pelo compilador JIT. |
Complexo |
Contadores de exceções
Os seguintes contadores pertencem às exceções.
Nome e nome curto |
Descrição |
---|---|
Exceções Jogadas nExceptions |
A contagem de exceções gerenciadas que tiverem sido jogadas. Como gerar uma exceção consome recursos significativos, o número de exceções lançadas por seu aplicativo de acompanhamento pode ajudar a identificar possíveis problemas de design. |
Contadores de Interoperabilidade
Os seguintes contadores pertencem a interoperabilidade com código nativo.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Chamadas da Plataforma Invoke nPInvoke |
A contagem das chamdas da plataforma invoke do código gerenciado para código nativo, excluindo chamadas internas da plataforma CLR. |
Simples |
Chamadas COM usando uma vtable nComVTable |
A contagem de chamadas de código gerenciado para código nativo usando o método COM Interop vtable. |
Simples |
Chadas COM usando IDispatch nComIDispatch |
A contagem de chamadas de código gerenciado para código nativo usando a interoperabilidade COM IDispatch método. |
Simples |
Empacotamentos Complexos nMarshal |
O número de objetos empacotados do código gerenciado ao código nativo envolvidos copiando ou transformando os dados. |
Simples |
Runtime Callable Wrappers cTotalRcw |
A contagem total de COM Runtime Callable Wrappers adicionais que foram criados. Os tempo de execução callable wrappers são criados quando um objeto COM não gerenciado chama código gerenciado em execução no tempo de execução do .NET Compact estrutura. |
Simples |
Rede de contadores
Os seguintes contadores pertencem a rede de operações enviar e receber.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Bytes enviados por soquete nBytesSent |
A contagem total de bytes enviados em soquetes. |
Simples |
Bytes recebidos por soquete nBytesReceived |
A contagem total de bytes recebidos por soquetes. |
Simples |
Contadores de formulários do Windows
Os seguintes contadores pertencem à System.Windows.Forms namespace.
Nome e nome curto |
Descrição |
Tipo de contador |
---|---|---|
Controles criados nControlsCreated |
O número total de controles criados pelo aplicativo. |
Simples |
Pincéis criados nBrushesCreated |
O número total de objetos de pincel criadas pelo aplicativo. |
Simples |
Canetas criadas nPensCreated |
O número total de objetos de caneta criadas pelo aplicativo. |
Simples |
Bitmaps criados nBitmapsCreated |
O número total de objetos de bitmap criados pelo aplicativo. |
Simples |
Regiões criadas nRegionsCreated |
O número total de objetos de região criadas pelo aplicativo. |
Simples |
Fontes criadas nFontsCreated |
O número total de objetos fonte criadas pelo aplicativo. |
Simples |
Gráficos criados (FromImage) nGraphicsFromImage |
O número total de objetos gráficos criados pelo FromImage método. |
Simples |
Gráficos criados (CreateGraphics) nGraphicsCreateGraphics |
O número total de objetos gráficos criados pelo CreateGraphics método. |
Simples |
Consulte também
Tarefas
Como: Gerar estatísticas de desempenho