PDA

Vollständige Version anzeigen : Analysetool


Dirk Skirde
23.10.2001, 08:17
Hallo,

ich suche eventuell ein Tool, mit dem ich analysieren kann an welcher Stelle die meiste Zeit, z.B. beim Laden eines Formulares mit diversen Funktionsaufrufen,
verbraten wird!

Gibt es so etwas bzw. wo kann ich eventuell eine DEMO oder ähnliches bekommen?

Danke für Eure Hilfe

Hondo
29.10.2001, 10:50
Hallo, hab irgendwo ein Modul her, das ich für das selbe eingesetzt habe. Nenn das Modul Timer.

Option Compare Database
Option Explicit

' Performance counter API's

Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type

Dim startzeit As LARGE_INTEGER
Dim endzeit As LARGE_INTEGER
Dim frequenz As LARGE_INTEGER
Dim cali As Double

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

Public Sub Start()
QueryPerformanceCounter startzeit
End Sub

Public Sub Halt()
QueryPerformanceCounter endzeit
End Sub

Public Property Get RunTime() As Variant
RunTime = (D(endzeit) - D(startzeit)) / D(frequenz) * 1000 - cali ' ms
If RunTime < 0 Then RunTime = 0
End Property


Private Sub Class_Initialize()
QueryPerformanceFrequency frequenz
End Sub

Private Function D(x As LARGE_INTEGER) As Double
D = x.lowpart + x.highpart * 4294967296#
End Function


Public Sub Calibrieren()
QueryPerformanceCounter startzeit
QueryPerformanceCounter endzeit
QueryPerformanceFrequency frequenz
cali = (D(endzeit) - D(startzeit)) / D(frequenz) * 1000 ' ms
End Sub

Public Sub ShowTime()
MsgBox "Zeitmessung: " & Format(RunTime, "0.00 ms")
End Sub


Aufruf:
Timer.Calibrieren
Timer.start
hier zu messende Programmabläufe
Timer.Halt
Timer.ShowTime

Gruß Andreas