![]() |
Модераторы: diadiavova, gambit |
![]() ![]() ![]() |
|
Eatmeat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.3.2006 Где: г.Тюмень Репутация: нет Всего: 2 |
Собственно, чем лучше измерять скорость исполнения кода?
|
|||
|
||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 2 Всего: 15 |
Самый простой способ, который я знаю: Вставляешь перед кодом, скорость выполнения которого надо измерить, что-нибудь типа:
DateTime tn=DateTime.Now; а после tn=DateTime.Now.Subtract(tn); и выводишь куда-нибудь эту самую tn. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
DarkDragon |
|
|||
![]() GradVin ![]() ![]() Профиль Группа: Участник Сообщений: 296 Регистрация: 19.8.2006 Репутация: 5 Всего: 8 |
Вроде возвращает TimeSpan структуру, а не класс DateTime.
И еще Naum, код C# в VB.NET ![]() Если Windows приложение, тогда Debug: Debug.WriteLine (tp.Seconds) Если Console приложение, тогда Console: Console.WriteLine (tp.Ticks) |
|||
|
||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 2 Всего: 15 |
![]() Блин, запутался совсем. Вообще-то я VB-шник, но все пытаюсь перейти на C#, потому что на работе недовольны. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
popzow |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Часто необходимо измерить время выполнения куска кода. Как это сделать? В .NET это делатется с помощью классов DateTime и TimeSpan.
Dim datebefore As Date 'Здесь хранится время запуска кода Dim dateafter As Date 'Здесь время окончания кода Dim tspan As New TimeSpan 'Это для вычисления разницы между dateafter и datebefore 'Засекаем время datebefore = Now '---здесь располагается код--- 'Смотрим время dateafter = Now tspan = dateafter.Subtract(datebefore) MsgBox("Время выполнения: " & tspan.TotalMilliseconds.ToString) |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 5 Всего: 149 |
![]() ![]() |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 1 Всего: 93 |
Тут вот привели решения, основанные на разности времени окончания и начала работы. На самом деле это не совсем корректно. Дело в том, что это время может сильно варьироваться, например, в зависимости от загруженности процессора другими задачами. Кроме того, DateTime имеет не слишком большую точность -- порядка 15 мс. Первое можно учесть, используя вместо DateTime.Now.Ticks выражение System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime.Ticks. Тогда мы узнаем то время, которое потрачено процессором именно на выполнение нашей задачи. Только точность там всё-равно ~15 мс. Если же нужно замерить длительность совсем короткую операции и нужна высокая точность (правда без учёта выполнения параллельных задач), то используйте класс System.Diagnostics.Stopwatch. -------------------- Да. Именно так. |
|||
|
||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 2 Всего: 15 |
Если уж речь зашла о времени процессора, mr.Duda недавно постил интересную ссылку.
Добавлено @ 15:53 Правда, к .NET не имеет никакого отношения. Но все равно интересно почитать. Это сообщение отредактировал(а) Naum - 5.12.2006, 15:53 -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
![]() ![]() ![]() |
Правила форума VB .NET | |
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |