Время выполнения кода?

Для чего нужно знать время выполнения того или иного участка кода? Допустим у вас есть два варианта кода, которые выполняют одно и тоже. Тогда с помощью замеров, можно просмотреть, какой вариант выполнится быстрей и исходя из этих данных делать выводы.

Сегодня разберем два примера.

rst.rst04164 Время выполнения кода?

Первый пример:

Класс StopWatch унаследованный от System.Diagnostics

VB.NET:

Imports System.Diagnostics
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SW As New Stopwatch 'Создаем объект
        SW.Start() 'Запускаем
        System.Threading.Thread.Sleep(1000) 'Наш код
        SW.Stop() 'Останавливаем
        MsgBox(SW.ElapsedMilliseconds) 'Время выполнения в миллисекундах
        MsgBox(SW.Elapsed.Seconds) 'Время выполнения в секундах
        MsgBox(SW.ElapsedTicks) 'Тики
    End Sub
End Class

C#:

using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Stopwatch SW = new Stopwatch(); // Создаем объект
            SW.Start(); // Запускаем
            System.Threading.Thread.Sleep(1000); // Наш код
            SW.Stop(); //Останавливаем
            MessageBox.Show(Convert.ToString(SW.ElapsedMilliseconds)); // Время выполнения в миллисекундах
            MessageBox.Show(Convert.ToString(SW.Elapsed.Seconds)); // Время в секундах
            MessageBox.Show(Convert.ToString(SW.ElapsedTicks)); // Время в тиках
        }
    }
}

Второй пример:

Очень простой вариант с помощью двух классов  DateTime и TimeSpan

VB.NET:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim Start As Date 'Время запуска
    Dim Stoped As Date 'Время окончания
    Dim Elapsed As New TimeSpan 'Разница
    Start = Now 'Старт (Записываем время)
    System.Threading.Thread.Sleep(1000) 'Наш код
    Stoped = Now 'Стоп (Записываем время)
    Elapsed = Stoped.Subtract(Start) 'Вычитаем из Stoped (когда код выполнился) время Start (когда код запустили на выполнение)
    MsgBox(Elapsed.TotalMilliseconds) 'Время выполнения в миллисекундах с плавующей запятой
    MsgBox(Elapsed.Seconds) 'Время выполнения в секундах
End Sub

C#:

private void button2_Click(object sender, EventArgs e)
        {
            DateTime Start; // Время запуска
            DateTime Stoped; //Время окончания
            TimeSpan Elapsed = new TimeSpan(); // Разница
            Start = DateTime.Now; // Старт (Записываем время)
            System.Threading.Thread.Sleep(1000); // Наш код
            Stoped = DateTime.Now; // Стоп (Записываем время)
            Elapsed = Stoped.Subtract(Start); // Вычитаем из Stoped (когда код выполнился) время Start (когда код запустили на выполнение)
            MessageBox.Show(Convert.ToString(Elapsed.TotalMilliseconds)); // Время выполнения в миллисекундах с плавующей запятой
            MessageBox.Show(Convert.ToString(Elapsed.Seconds)); // Время выполнения в секундах
        }

 

  Метки: , ,
  Евгений
  Просмотров: 9 762
  Запись опубликована в 12:10

Есть что сказать? Тогда действуй!


:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-o :-P :-D :-? :) :( :!: 8-O 8)