Простейший анализатор производительности системы (кода программы) - VB

Узнай цену своей работы

Формулировка задачи:

Всем привет! Задался целью выяснить почему программа, которую я написал тормозит, точнеее какие ее блоки... Может кому пригодится, простой анализатор скорости работы кода. Выдает действительный результата три знака после запятой. Погрешность измериний не большая. Втулил интерфейс аля Win10, тени от формы (корректно и быстро отрисовываюстя), перетаскивание формы...

код формы

Решение задачи: «Простейший анализатор производительности системы (кода программы)»

textual
Листинг программы
Option Explicit
 
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
 
Private Sub Form_Load()
Dim cuFrequency     As Currency
Dim cuStart         As Currency
Dim cuStop          As Currency
Dim sngStart As Single, sngStop As Single
Dim dblT As Double, dblTd As Double
If QueryPerformanceFrequency(cuFrequency) = 0 Then
  MsgBox "Счетчик не работает", vbCritical
Else
  sngStart = Timer
  QueryPerformanceCounter cuStart
  For dblT = 1 To 50000
              dblTd = ((Sin(dblT) ^ 2) * 1.25666 + Cos((dblT / 1.2563 / Tan(1.25688))) + _
              (Sin(dblT) ^ 2) * 1.25666 + Cos((dblT / 1.2563 / Tan(1.25688))) + (Sin(dblT) ^ 2) * _
              1.25666 + Cos((dblT / 1.2563 / Tan(1.25688))) + (Sin(dblT) ^ 2) * 1.25666 + _
              Cos((dblT / 1.2563 / Tan(1.25688))) + (Sin(dblT) ^ 2) * 1.25666 + Cos((dblT / 1.2563 / Tan(1.25688))) + _
              (Sin(dblT) ^ 2) * 1.25666 + Cos((dblT / 1.2563 / Tan(1.25688)))) / 12.1212154545455 + Tan(dblT) + _
              Log(5.25665 * 56.25665)
  Next
  QueryPerformanceCounter cuStop
  sngStop = Timer
  MsgBox "Время по счетчику " & (cuStop - cuStart) / cuFrequency & vbLf & _
    "Время по таймеру " & sngStop - sngStart
End If
End
End Sub

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы