|
Навигация
RSS / MAP / W3C
Статистика
|
Как узнать время выполнения функции, команды,операции.Замеряем время выполнения операции Иногда бывают моменты когда необходимо знать время выполнения операции, функции и т.д., как это сделать?, рассмотрим далее.Поставим себе задачу, определить время выполнении цикла и общее время работы программы. Общий принцип заключается в следующем, мы получаем текущее системное время перед выполнением функции, цикла, команды, а её завершения или в любой другой момент вычислить сколько времени прошло с момента начала. Вычисляем время выполнения цикла и скорость (кило символов в секунду)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, max As Integer
max = 100000
ProgressBar1.Maximum = max
'----ЗАСЕКАЕМ ВРЕМЯ----
gl_start_time = Now
'####ЗАСЕКАЕМ ВРЕМЯ####
For i = 0 To max
ProgressBar1.Value = i
Application.DoEvents()
'----Вычисляем сколько времени прошло----
gl_stop_time = Now
gl_elapsed_time = gl_stop_time.Subtract(gl_start_time)
'####Вычисляем сколько времени прошло####
Label1.Text = "Время: " + CStr(Math.Round(gl_elapsed_time.TotalSeconds, 1))
Label2.Text = "Скорость: " + CStr(Math.Round((i / (Math.Round(gl_elapsed_time.TotalSeconds, 1)) / 320), 0)) + " кСимволов/сек."
Next
End Sub
Исходный код всего проекта с вычислением времени запуска программы.
'############################################################
'# Примеры, уроки и статьи для VB #
'# http://XOD.IN.UA
'# #
'############################################################
Public Class Form1
Public total_time As TimeSpan
Public total_start_time As DateTime
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim gl_start_time As DateTime
Dim gl_stop_time As DateTime
Dim gl_elapsed_time As TimeSpan
Dim i, max As Integer
max = 100000
ProgressBar1.Maximum = max
'----ЗАСЕКАЕМ ВРЕМЯ----
gl_start_time = Now
'####ЗАСЕКАЕМ ВРЕМЯ####
For i = 0 To max
ProgressBar1.Value = i
Application.DoEvents()
'----Вычисляем сколько времени прошло----
gl_stop_time = Now
gl_elapsed_time = gl_stop_time.Subtract(gl_start_time)
'####Вычисляем сколько времени прошло####
Label1.Text = "Время: " + CStr(Math.Round(gl_elapsed_time.TotalSeconds, 1))
Label2.Text = "Скорость: " + CStr(Math.Round((i / (Math.Round(gl_elapsed_time.TotalSeconds, 1)) / 1000), 0)) + " кСимволов/сек."
Next
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim stopt As DateTime
stopt = Now
total_time = stopt.Subtract(total_start_time)
Label3.Text = "Программа запущена: " + CStr(total_time.ToString)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
total_start_time = Now
Timer1.Enabled = True
End Sub
End Class
Страниц: 1
|
Скачать исходный код примера
