Ferramentas de Usuário

Ferramentas de Site


dev_net:vb.net:stopwatch_cronometre_o_seu_programa

Stopwatch: Cronometre o seu programa

A classe Stopwatch permite cronometrar-mos tempos dentro do nosso programa, com uma precisão de milissegundos. Isto pode ser interessante para saber a performance do nosso programa a executar uma determinada tarefa, etc…

Código

A classe Stopwatch é bastante simples de usar. Precisamos apenas de instanciar a variável, começar a contar, a determinado momento parar de contar, e depois ir buscar o resultado.

A classe Stopwatch encontra-se no namespace System.Diagnostics.
'Classe instanciada
Dim cron As Stopwatch = New Stopwatch
 
'Começamos a contar
cron.Start()
 
'Aqui deveremos incluir o código da nossa aplicação que queremos cronometrar.
'...
 
'Paramos de contar
cron.Stop()
 
'Obtemos o tempo, no formato que quisermos
cron.ElapsedMilliseconds
cron.Elapsed
cron.ElapsedTicks

Métodos e Propriedades

Alguns dos métodos e propriedades mais importantes da classe Stopwatch. Para uma lista completa, pode aceder aqui.

Métodos

  • Start() - Inicia a contagem de tempo a partir da chamada da função.
  • Stop() - Para a contagem do tempo cronometrado.
  • Reset() - Repõe o tempo cronometrado a zero.
  • Restart() - Para a cronometragem actua, repõe o tempo cronometrado a zero, e depois começa de novo a cronometragem.

Propriedades

  • Elapsed - Retorna o tempo cronometrado pela instância actual.
  • ElapsedMilliseconds - Retorna o tempo cronometrado pela instância actual, em milissegundos.
  • IsRunning - Devolve true ou false, dependendo se a instância actual estiver a correr ou não.

Exemplo - Obter as FPS

Esta classe é muito útil para se quisermos, por exemplo, obter os FPS (frames per second) de algum ciclo ou mesmo de uma simples rotina.

Dim cron As Stopwatch = New Stopwatch
Dim x As Integer = 100
 
While (x > 100)
	cron.Restart()
 
	cron.Stop()
	'Escreve para o debug o número de FPS
	'Cada segundo tem 1000 milissegundos
	'Portanto vamos ver quantas frames conseguiriamos fazer à velocidade actual.
	Debug.WriteLine(1000 / cron.ElapsedMilliseconds)
	x -= 1
End While
dev_net/vb.net/stopwatch_cronometre_o_seu_programa.txt · Última modificação em: 2018/05/14 21:37 (edição externa)