Hei,
miten mittaan ohjelman suoritusajan ?
Jos aika on sekunteja, helpoin tapa on käyttää Timer-funktiota. Määrittele muuttuja aika single-tyyppiseksi. Lisää ohjelman alkuun käsky:
aika = Timer
ja loppuun
aika = Timer - aika MsgBox "Ohjelman aika oli " & Format(aika, "0.00" & " s."
On terkempiakin tapoja jos tarvitset.
Yksinkertainen tapa on käyttää funktiota Timer, joka palauttaa sekuntien määrän keskiyöstä.
' tässä säilytetään aikaa, jolloin mittaus alkoi Dim aika As Double Private Sub Form_Load() ' tämä laitetaan kohtaan, jossa ajan mittaus alkaa aika = Timer End Sub Private Sub Form_Unload(Cancel As Integer) ' tämä laitetaan kohtaan, jossa ajan mittaus päättyy MsgBox "Ohjelma oli käynnissä " & Round(Timer - aika, 2) & " s" End Sub
Tarkempaan tulokseen pääsee funktioilla timeGetTime ja QueryPerformanceCounter.
Kiitos, kokeilen tuota .
timings.bas
Option Explicit Private Declare Function QueryPerformanceCounter Lib "kernel32" (X As Currency) As Boolean Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Boolean Dim m_Time As Double Dim m_TimeFreq As Double Dim m_TimeStart As Currency Public Property Get Timing() As Double Dim curTime As Currency QueryPerformanceCounter curTime Timing = (curTime - m_TimeStart) * m_TimeFreq + m_Time End Property Public Property Let Timing(ByVal NewValue As Double) Dim curFreq As Currency, curOverhead As Currency m_Time = NewValue QueryPerformanceFrequency curFreq m_TimeFreq = 1 / curFreq QueryPerformanceCounter curOverhead QueryPerformanceCounter m_TimeStart m_TimeStart = m_TimeStart + (m_TimeStart - curOverhead) End Property
Alustaminen / nollaus:
Timing = 0
Käyttö:
MsgBox Format$(Timing, "0.000000") & " millisekuntia"
Käyttämällä Timing * 1000
saa ajan sekunteina. Format on hyödyllinen ettei tule luettavuutta haittaavia pyöristyksiä (lukuE-jotain tai lukuE+jotain).
Aihe on jo aika vanha, joten et voi enää vastata siihen.