Como usar QueryPerformanceCounter para código de tempo no Visual Basic .NET ou no Visual Basic 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 306978
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 306979.
Para uma versão deste artigo do Microsoft Visual Basic 6.0, consulte 172338.

NESTA TAREFA

Sumário
Quando você testar o código para identificar afunilamentos de desempenho, é melhor usar o timer de resolução mais alto que o sistema tem a oferecer. Este artigo passo a passo descreve como usar a função de QueryPerformanceCounter para código de aplicativo de tempo.

back to the top

Compilar e executar um aplicativo de demonstração

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 e crie um novo aplicativo Console Visual Basic.
  2. Substitua o código padrão para Module1 com o código a seguir:
    Module Module1    Declare Function QueryPerformanceCounter Lib "Kernel32" (ByRef X As Long) As Short    Declare Function QueryPerformanceFrequency Lib "Kernel32" (ByRef X As Long) As Short    Sub Main()        Dim Ctr1, Ctr2, Freq As Long        Dim Acc, I As Integer        ' Times 100 increment operations by using QueryPerformanceCounter.        If QueryPerformanceCounter(Ctr1) Then   ' Begin timing.            For I = 1 To 100                    ' Code is being timed.                Acc += 1            Next            QueryPerformanceCounter(Ctr2)       ' Finish timing.            Console.WriteLine("Start Value: " & Ctr1)            Console.WriteLine("End Value: " & Ctr2)            QueryPerformanceFrequency(Freq)            Console.WriteLine("QueryPerformanceCounter minimum resolution: 1/" & Freq & " seconds.")            Console.WriteLine("100 Increment time: " & (Ctr2 - Ctr1) / Freq & " seconds.")        Else            Console.WriteLine("High-resolution counter not supported.")        End If        '        ' Keep console window open.        '        Console.WriteLine()        Console.Write("Press ENTER to finish ... ")        Console.Read()    End SubEnd Module					
  3. Salve o aplicativo e pressione a tecla F5 para compilar e executar o aplicativo. As janelas do console devem exibir a saída similar à seguinte:
    Start Value: 281060816204End Value: 281060816269QueryPerformanceCounter minimum resolution: 1/3579545 seconds.100 Increment time: 1.81587324646009E-05 seconds.Press ENTER to finish ...						
  4. Pressione ENTER para interromper a execução do aplicativo e feche a janela de console.
back to the top

Solução de problemas

  • Essa chamada de função pode falhar em algumas circunstâncias. Verifique o valor de retorno e ajuste seu código para certificar-se de que você recebe resultados válidos.
  • Para obter melhores resultados, teste o aplicativo várias vezes quando outros aplicativos ou processos do servidor estão executando. Atividades em outros segmentos e processos podem afetar a porcentagem de tempo que o sistema gasta no aplicativo de destino.
back to the top
Referências
Para obter mais informações, procure por "QueryPerformanceCounter" e "QueryPerformanceFrequency" na Ajuda online do Visual Studio. NET.

Para informações sobre outros timers, procure por "timeGetTime", "ObterContagemMarcaEscala" e "System.DateTime classe" na Ajuda online do Visual Studio. NET.

back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 306978 - Última Revisão: 12/06/2006 23:18:25 - Revisão: 2.3

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005applies kbvs2005swept kbhowtomaster KB306978 KbMtpt
Comentários