Guten Abend
Ich habe mir eine Klasse gebaut um die Zeit zu messen, die bestimmte Vorgänge in meinem Programm benötigen.
Diese werden anschließend in eine Textdatei geschrieben (log.txt).
Um verschaltete Vorgänge messen zu können habe ich das ganze so aufgebaut, dass mehrere Zeiten gleichzeitig erfasst werden können.
Ausgegeben wird einfach immer die letzte, aber das ist alles was ich brauche.
Mein Problem ist das der Gesamtvorgang anscheinend nicht mehr Zeit benötigt als die "Sub-Vorgänge" was nicht möglich sein kann
Die Messung mit einer StopWatch wahr mir zu ungenau, deshalb griff ich zu dieser Methode.
Infos:
Spoiler anzeigen
Ich habe mir eine Klasse gebaut um die Zeit zu messen, die bestimmte Vorgänge in meinem Programm benötigen.
Diese werden anschließend in eine Textdatei geschrieben (log.txt).
Um verschaltete Vorgänge messen zu können habe ich das ganze so aufgebaut, dass mehrere Zeiten gleichzeitig erfasst werden können.
Ausgegeben wird einfach immer die letzte, aber das ist alles was ich brauche.
Mein Problem ist das der Gesamtvorgang anscheinend nicht mehr Zeit benötigt als die "Sub-Vorgänge" was nicht möglich sein kann

Die Messung mit einer StopWatch wahr mir zu ungenau, deshalb griff ich zu dieser Methode.
Infos:
Zeitmessungen:
Aufruf:
Ausgabe (log.txt):
VB.NET-Quellcode
- Module time_management
- Dim measurements As New List(Of Long)
- Public Sub start_measurement()
- measurements.Add(Date.Now.Ticks)
- End Sub
- Public Function stop_measurement(Optional resolution_multiplier As Byte = resolution_multipliers.Microseconds) As Long
- Dim measurement As Long = CLng(Now.Date.Ticks - measurements.Item(measurements.Count - 1) / 1000)
- measurements.RemoveAt(measurements.Count - 1)
- For i As Integer = 0 To resolution_multiplier
- measurement = CLng(measurement / 1000)
- Next
- Return measurement
- End Function
- Public Enum resolution_multipliers As Byte
- Nanoseconds = 3
- Microseconds = 4
- Miliseconds = 5
- End Enum
- End Module
Aufruf:
VB.NET-Quellcode
- time_management.start_measurement()
- projects.Clear()
- check_directory(My.Settings.path_projects_di_ending)
- For Each project As String In My.Computer.FileSystem.GetDirectories(My.Settings.path_projects_di_ending)
- time_management.start_measurement()
- Dim project_info = My.Computer.FileSystem.GetDirectoryInfo(project)
- Dim new_project As New project_class
- With new_project
- .name = project_info.Name
- .created = project_info.CreationTime
- .last_edit = project_info.LastAccessTime
- .last_read = project_info.LastWriteTime
- .description = get_project_description(.name)
- End With
- projects.Add(new_project)
- log.write("PROJECT LOADED (" & time_management.stop_measurement & "µs)")
- Next
- log.write("ALL PROJECTS LOADED (" & time_management.stop_measurement & "µs)")
Ausgabe (log.txt):