Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2009, 12:15   #1
byte916
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 75
По умолчанию Измерение времени в c#

Необходимо точно измерить время за которое будет выполнена операция. Например запускается цикл, и надо очень точно измерить за какой срок он будет выполнен (это что то вроде бенчмарка). Как это сделать?
byte916 вне форума Ответить с цитированием
Старый 06.03.2009, 12:51   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Код:
using System.Diagnostics;

namespace MyNameSpace
{
    class Example
    {
        static void Main(string[] args)
        {
            // 1
            Stopwatch t = new Stopwatch();
            t.Start();

            int A = 0;
            for (int i = 0; i < 1000000; i++) { A++; }

            t.Stop();
            Console.WriteLine(t.Elapsed);

            // 2
            Int64 b = Stopwatch.GetTimestamp();

            A = 0;
            for (int i = 0; i < 1000000; i++) { A++; }

            Console.WriteLine((Stopwatch.GetTimestamp()-b) / (double)Stopwatch.Frequency);
alexBlack вне форума Ответить с цитированием
Старый 06.03.2009, 15:05   #3
byte916
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 75
По умолчанию

Большое спасибо, но оба способа показывают неточное время, они уменьшают время приблизительно на 20%, т.е. если на тест тратится одна минута, то программа показывает около 50 секунд
byte916 вне форума Ответить с цитированием
Старый 06.03.2009, 18:45   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от byte916 Посмотреть сообщение
Большое спасибо, но оба способа показывают неточное время, они уменьшают время приблизительно на 20%, т.е. если на тест тратится одна минута, то программа показывает около 50 секунд
Так речь о минутах...
Тогда

Environment.TickCount
DateTime.Now
DateTime.Now.Ticks

По поводу неточного времени. А как Вы его проверяете ?
alexBlack вне форума Ответить с цитированием
Старый 06.03.2009, 21:18   #5
byte916
Пользователь
 
Регистрация: 04.03.2008
Сообщений: 75
По умолчанию

Есть форма - ней лабель и кнопка. По кнопке активируется цикл. После выполнения цикла в лабеле пишется время выполнения цикла. ВОт я по нажатию кнопки засекал время. Через некоторое время в лабеле появлялось время (если пользоватся первым методом то формате 00.00.00.00000, если вторым то в формате 00.000000.). И обоими методами показатели всегда были примерно на 20% меньше чем замеренное часами.
А минуты мне совершенно не нужны
byte916 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите создать апплет - Измерение коэффициента вязкости жидкости Mitron Общие вопросы по Java, Java SE, Kotlin 1 29.04.2008 20:14
диапазон времени chekanoff БД в Delphi 34 02.03.2008 01:28
Отсчет времени в С Raptor Помощь студентам 13 29.12.2007 16:32
Машина времени BETONOMESHALKA Общие вопросы Delphi 4 23.12.2007 23:44