13 EKİM 2008, PAZARTESİ
Nasıl VBA kodu süre test musun?
Farklı fonksiyonlar kez çalışan karşılaştırabilirsiniz böylece beni çalıştırmak için aldığın zaman haber olacak bir işlevi sarın, ben VBA kodu var mı?
CEVAP
13 EKİM 2008, PAZARTESİ
Fonksiyonları çok yavaş sürece, yüksek çözünürlüklü, çok bir zamanlayıcı ihtiyacınız olacak. Biliyorum en doğru bir QueryPerformanceCounter
. Daha fazla bilgi için Google. Bir sınıfa aşağıdaki itmeyi deneyin, çağrı CTimer
o zaman bir örnek, bir yerde global olun ve sadece .StartCounter
.TimeElapsed
diyebilirsin
Option Explicit
Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As LARGE_INTEGER) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As LARGE_INTEGER) As Long
Private m_CounterStart As LARGE_INTEGER
Private m_CounterEnd As LARGE_INTEGER
Private m_crFrequency As Double
Private Const TWO_32 = 4294967296# ' = 256# * 256# * 256# * 256#
Private Function LI2Double(LI As LARGE_INTEGER) As Double
Dim Low As Double
Low = LI.lowpart
If Low < 0 Then
Low = Low TWO_32
End If
LI2Double = LI.highpart * TWO_32 Low
End Function
Private Sub Class_Initialize()
Dim PerfFrequency As LARGE_INTEGER
QueryPerformanceFrequency PerfFrequency
m_crFrequency = LI2Double(PerfFrequency)
End Sub
Public Sub StartCounter()
QueryPerformanceCounter m_CounterStart
End Sub
Property Get TimeElapsed() As Double
Dim crStart As Double
Dim crStop As Double
QueryPerformanceCounter m_CounterEnd
crStart = LI2Double(m_CounterStart)
crStop = LI2Double(m_CounterEnd)
TimeElapsed = 1000# * (crStop - crStart) / m_crFrequency
End Property
Bunu Paylaş:
Nasıl VBA kodu süre test musun?...
Nasıl bir iphone uygulaması beta test ...
Nasıl birim özel yöntemler test musun?...
Nasıl bir Python fonksiyonu bir istisn...
Nasıl birim testi test musun?...