lunes, 14 de abril de 2008

Tickcount en Visual Basic .Net

Tickcount es una propiedad que nos devuelve el número de milisegundos que han transcurrido desde que el sistema se inició. ¿Y para que nos sirve esto? Pues yo lo suelo utilizar para medir su un proceso es muy costoso y sobre todo, para compararlo con otra posible estrategia.

Me explico. A veces se te ocurren varias formas de abordar el mismo problema, pero ¿cual es más rápida? Pues la manera en la que yo decido es utilizando tickcount. Lo que hago es bastante simple: cuento los milisegundos antes del proceso, ejecuto el proceso, vuelvo a contar los milisegundos y simplemente resto. Aquel proceso que me de menos tiempo es el más rápido (normalmente suelo hacer una media porque es más fiable e intento que las condiciones de ejcución sean muy similares).

Os pongo un pequeño ejemplo. En la primera parte del ejemplo vamos a contar el número de ticks cuando pulsamos tres veces un messagebox. En la segunda parte lo contaremos cuando pulsemos cinco veces. Si la segunda parte la hacemos más lenta, veremos que el número de ticks es mayor:

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim inicio As Integer
Dim final As Integer

Dim n As Integer

'probamos con tres pulsaciones
inicio = Math.Abs(Environment.TickCount)

For n = 1 To 3
MessageBox.Show("PULSAME")
Next

final = Math.Abs(Environment.TickCount)

MessageBox.Show(Math.Abs(final - inicio))


'probamos con cinco pulsaciones
inicio = Math.Abs(Environment.TickCount)

For n = 1 To 5
MessageBox.Show("PULSAME")
Next

final = Math.Abs(Environment.TickCount)

MessageBox.Show(Math.Abs(final - inicio))

End Sub
End Class


Mas información en Msdn

1 comentario:

Anónimo dijo...

Gracias, exelente aclaracion