Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 60268 Skopiuj do schowka [XProStopwatch] - mechanizm do profilowania kodu.
Autor Wiadomość
kulasart
[Usunięty]

Wysłany: 31-01-2018, 10:44   [XProStopwatch] - mechanizm do profilowania kodu.

Był XProLogger, teraz przyszedł czas na XProStopwatch, czyli prosty mechanizm do mierzenia jak długo wykonuje się nasz kod.

Jedna instancja obiektu pozwala na zmierzenie czasu wykonania w wielu miejscach. Jedno miejsce możemy mierzyć wielokrotnie (tak jak stoper pozwala na zmierzenie czasów pojedynczych okrążeń) np. jeżeli potrzebujemy zmierzyć średni czas wykonania się ciała pętli.

Pomiary są dokonywane w obrębie określonego kontekstu tj. unikatowej etykiety tekstowej. Jeżeli chcemy dokonać oddzielnych pomiarów różnych części kodu, to dla każdego pomiaru musimy stworzyć oddzielny kontekst.

Kod:
Sub test()
    Dim i As Long
    Dim stopwatch As XProStopwatch
    Set stopwatch = New XProStopwatch
   
    stopwatch.StartContext "Mala petla"
    For i = 1 To 100
        stopwatch.LapContext "Mala petla"
    Next
   
    stopwatch.StartContext "Wieksza petla"
    For i = 1 To 1000
        stopwatch.LapContext "Wieksza petla"
    Next
   
    stopwatch.StartContext "Jeszcze wieksza petla"
    For i = 1 To 10000
        stopwatch.LapContext "Jeszcze wieksza petla"
    Next
   
    stopwatch.AddContext "Dluga operacja"
    With stopwatch.Context("Dluga operacja")
        Debug.Print .Started
        Debug.Print .Laps
       
        .StartTimer   
 
           For i = 1 To 10000
                Range("A1").Value = Rnd
            Next           

        .StopTimer
        Debug.Print .ToString
    End With
   
   
    ' wyswietlenie wynikow
    Debug.Print stopwatch.Context("Mala petla").ToString
    Debug.Print stopwatch.Context("Wieksza petla").ToString
    Debug.Print stopwatch.Context("Jeszcze wieksza petla").ToString
    Debug.Print Format(stopwatch.Context("Jeszcze wieksza petla").LapDuration(155), "0.000000000s") ' wyswietlenie czasu konkretnego pomiaru
End Sub


XProStopwatch.xlsm
Pobierz Plik ściągnięto 64 raz(y) 30.93 KB

ID posta: 339178 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe