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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2010, 22:32   #1
H'orn
Пользователь
 
Аватар для H'orn
 
Регистрация: 19.10.2009
Сообщений: 37
По умолчанию узнать время работы отдельного участка программы

За рание спасибо!!!
Необходимо узнать время роботы отдельного участка програмы. Подскажите какими методати можно это релализовать?????
H'orn вне форума Ответить с цитированием
Старый 21.02.2010, 22:34   #2
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

System.Diagnostics.StopWatch ??
akasex вне форума Ответить с цитированием
Старый 21.02.2010, 23:06   #3
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
int s1=DateTime.Now.Second;
/*код программы
*/
int s2=DateTime.Now.Second;
int razniza=s2-s1;
вместо Second можно Millisecond ...
Ну или создать свою функцию со временем.... что более правильно))
Или через диагностику))как сказано ниже)
dampirik вне форума Ответить с цитированием
Старый 21.02.2010, 23:44   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 534
По умолчанию

dampirik если мы запустим прогу в 23:30:50, а остановим в 23:31:30 получится прога работала -20 секунд ?)

Код:
DateTime before = DateTime.Now;
//что-то делаем
DateTime after = DateTime.Now;
TimeSpan res = after - before;
//вывод в любом подходящем виде, хоть в миллисекундах хоть в днях
Код:
Console.WriteLine(res.TotalSeconds);
Console.WriteLine(res.Milliseconds);

Последний раз редактировалось m0nax; 21.02.2010 в 23:46.
m0nax вне форума Ответить с цитированием
Старый 22.02.2010, 00:22   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Цитата:
если мы запустим прогу в 23:30:50, а остановим в 23:31:30 получится прога работала -20 секунд ?)
Ну да)) неспорю...) костыль...частного случая..)
Цитата:
DateTime before = DateTime.Now;
//что-то делаем
DateTime after = DateTime.Now;
TimeSpan res = after - before;
Console.WriteLine(res.TotalSeconds) ;
Console.WriteLine(res.Milliseconds) ;
хы... а я чтото собирался велосипед изобрести))
dampirik вне форума Ответить с цитированием
Старый 22.02.2010, 01:04   #6
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
Stopwatch stopwatch = new Stopwatch();
        // Begin timing
        stopwatch.Start();
        // Do something
        for (int i = 0; i < 1000; i++)
        {
            Thread.Sleep(1);
        }
        // Stop timing
        stopwatch.Stop();
        // Write result
        Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
akasex вне форума Ответить с цитированием
Старый 23.02.2010, 00:42   #7
H'orn
Пользователь
 
Аватар для H'orn
 
Регистрация: 19.10.2009
Сообщений: 37
По умолчанию

Спасибо!!! Сразу еще вопрос, а возможно ли измерить время работы програмы в тактах процессора, просто на секундах разница не видна, а вот милисекуднды я еще не пробовал. Огромное спасибо за то что отписались!!!!!!!!!!!!!!!!!!
H'orn вне форума Ответить с цитированием
Старый 10.03.2010, 10:10   #8
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Решил проверить что быстрее отработает...
Код:
DateTime before = DateTime.Now;
            IEnumerable<stone> s = Obj.OfType<stone>();
            foreach (stone ss in s)
            {
                ss.Draw(spriteBatch);
            }
            IEnumerable<tree> t = Obj.OfType<tree>();
            foreach (tree tt in t)
            {
                tt.Draw(spriteBatch);
            }
            DateTime after = DateTime.Now;
            TimeSpan res = after - before;
или
Код:
   DateTime before = DateTime.Now;
            foreach (object o in Obj)
            {
                IEnumerable<stone> s = Obj.OfType<stone>();
                foreach (stone ss in s)
                {
                    ss.Draw(spriteBatch);
                }
                IEnumerable<tree> t = Obj.OfType<tree>();
                foreach (tree tt in t)
                {
                    tt.Draw(spriteBatch);
                }
            }
            DateTime after = DateTime.Now;
            TimeSpan res = after - before;
Результат
Код:
res.Milliseconds.ToString()
или
Код:
res.TotalSeconds.ToString()
и там и там равны 0...
dampirik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Время работы программы Magist Компоненты Delphi 5 24.10.2009 20:52
Как узнать время работы программы в паскаль? bullvinkle Помощь студентам 2 26.12.2008 11:20
Создание обьектов во время работы программы Rusl92 Общие вопросы Delphi 4 11.08.2008 17:03
Как узнать создана ли форма во время работы приложения? Avalonix Общие вопросы Delphi 4 31.05.2008 21:01
Создание компонентов во время работы программы Rusl92 Компоненты Delphi 23 05.04.2008 08:38