CISA FotoGallery

Statistiche

Tot. visite contenuti : 928371
Home Articoli tecnici Classi Calcolo prestazioni

Calcolo prestazioni


CODICE

Option Compare Database
Option Explicit
' Classe realizzata da Alessandro Baraldi
' 20/03/2004
'
' Classe per eseguire Test di velocità su
' Routine o qualsiasi parte di Codice
' La Classe verifica che il PC supporti la precisione
' richiesta.


' ------------------------------------------------------
' ESEMPIO DI CODICE
' ------------------------------------------------------
'
' Dim x As Integer
' Dim y As Long
' Dim pc As New clsPerformanceTime
' 'Inizializza il contatempo
' pc.StartTimer
' For x = 1 To 10000: Next
' pc.StopTimer
' Debug.Print pc.TotalTime
'
' 'Inizializza il contatempo
' pc.StartTimer
' For y = 1 To 100000: Next
' ' Arresta il Contatempo
' pc.StopTimer
' ' Visualizza il Tempo di esecuzione
' Debug.Print pc.TotalTime


Private Declare Function QueryPerformanceCounter Lib _
"kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function
QueryPerformanceFrequency Lib _
"kernel32" (lpFrequency As Currency) As Long

Dim
TimerQPF(2) As Currency
Dim
frequency As Currency


Private Sub
Class_Initialize()
    ' raise error if API functions aren't supported
    
If QueryPerformanceFrequency(frequency) = 0 Then
        
Err.Raise 1001, , "This system doesn't support high-res timing"
    End If
    
' get start time as well
    
StartTimer
End Sub

Property Get
TotalTime()
    TotalTime = ((TimerQPF(1) - TimerQPF(0)) / TimerQPF(2)) * 1000
End Property

Sub
StartTimer()
    Call QueryPerformanceCounter(TimerQPF(0))
End Sub

Sub
StopTimer()
    Call QueryPerformanceCounter(TimerQPF(1))
    Call QueryPerformanceFrequency(TimerQPF(2))
End Sub

Attachments:
Download this file (516.zip)Allegato46 Kb