Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
1

Интересный случай с таймером

08.10.2011, 22:52. Показов 853. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет замераю таймером и вывожу
C#
1
2
3
4
5
6
for (int i=0; i<5; i++){
 dt = DateTime.Now;
  for(j; j<num; j++){ *алгоритм* }
 sp = DateTime.Now - dt;
 экран = sp.TotalMilliseconds.ToString(); //выводит 0  / 1.0001 / 10 / 97 ....
}
вопрос как может быть 0 млс в первый раз? такого не бывает, выполнение любой операции это один тик так что тут за чудеса?

Добавлено через 4 минуты
видно там 0.001 как заставить не округлять? хотя как видно второе значение без округления, так что чудеса
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2011, 22:52
Ответы с готовыми решениями:

Очень интересный случай на C#
Здравствуйте друзья) Нашел очень интересную, но в то же время не очень простую задачю. Очень...

Интересный случай
Здраствуйте форумчане, вот код &lt;a href=&quot;/node/&lt;?php print $node-&gt;nid; ?&gt;&quot;&gt;&lt;/a&gt;, но почему даже...

Интересный случай
Здравствуйте уважаемые форумчане. Сегодня столкнулся с интересным случаем - Комп, на нём семёрка...

Интересный случай с кабелем
Сегодня столкнулся можно сказать почти с мистической проблемой, но сначала небольшое вступление....

6
39 / 39 / 8
Регистрация: 11.05.2011
Сообщений: 78
08.10.2011, 23:11 2
у DateTime нет функции TotalMilliseconds, откуда она у тебя взялась? Есть функция Millisecond, но она возвращает компонент миллисекунд, т.е. дата может различаться на день, час, минуты, секунды, а колличество миллисекунд быть одинаковым.
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
08.10.2011, 23:13 3
Чудеса только в книгах Пушкина и фильмах голливуда. Просто алгоритм работает быстро и времени уходит ничтожно мало.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
08.10.2011, 23:16 4
Цитата Сообщение от dartraven Посмотреть сообщение
у DateTime нет функции TotalMilliseconds, откуда она у тебя взялась? Есть функция Millisecond, но она возвращает компонент миллисекунд, т.е. дата может различаться на день, час, минуты, секунды, а колличество миллисекунд быть одинаковым.
Вроде у него там TimeSpan а не DateTime.

Добавлено через 32 секунды
Цитата Сообщение от borovik Посмотреть сообщение
вопрос как может быть 0 млс в первый раз? такого не бывает, выполнение любой операции это один тик так что тут за чудеса?
Добавлено через 4 минуты
видно там 0.001 как заставить не округлять? хотя как видно второе значение без округления, так что чудеса
Выводи не миллисекунды, а тики.
0
Заблокирован
08.10.2011, 23:33 5

Не по теме:

Цитата Сообщение от Петррр Посмотреть сообщение
Чудеса только в книгах Пушкина и фильмах голливуда.
И у Алисы Льюиса Керролла.


Цитата Сообщение от borovik Посмотреть сообщение
вопрос как может быть 0 млс в первый раз? такого не бывает, выполнение любой операции это один тик так что тут за чудеса?
А мегагерцы машины не о чем не говорят?
Типа 4 000 000 тактов в секунду.
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
09.10.2011, 00:47 6
У структуры DateTime интервал замера времени колеблется в пределах 40-50ms, так что если выполнение алгоритма заняло меньше этого времени, то DateTime.Now еще не увеличило свое значение.
Если вам нужно точное измерение затраченного на задачу времени, или нужно замерять очень небольшие промежутки, то используйте класс Stopwatch из пространства System.Diagnostics - у него погрешность болтается в районе 100 наносекунд, если мне память не изменяет.
2
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.10.2011, 01:07 7
Цитата Сообщение от kolorotur Посмотреть сообщение
У структуры DateTime интервал замера времени колеблется в пределах 40-50ms, так что если выполнение алгоритма заняло меньше этого времени, то DateTime.Now еще не увеличило свое значение.
Если вам нужно точное измерение затраченного на задачу времени, или нужно замерять очень небольшие промежутки, то используйте класс Stopwatch из пространства System.Diagnostics - у него погрешность болтается в районе 100 наносекунд, если мне память не изменяет.
Кстати да, не обратил внимание на это, хотя сам всегда замеряю именно им.

Вот на всякий случай:
C#
1
2
3
4
5
6
7
8
private void Test()
{
    string screenshot = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "picture.jpg");
    Stopwatch sw = Stopwatch.StartNew();
    pictureBox.Image = GetBitmapFromFile(screenshot); //это просто для наглядности
    sw.Stop();
    MessageBox.Show(this, string.Format("GetBitmapFromFile {0}", sw.ElapsedTicks.ToString()));
}
1
09.10.2011, 01:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2011, 01:07
Помогаю со студенческими работами здесь

Интересный случай! Апгрейд!
Что мне апгрейдить, на Ваш взгляд? спасибо. Тип ЦП QuadCore Intel Core 2 Quad Q6600, 2400...

Интересный случай... (видеокарта)
Доброго времени суток. Столкнулся с таким случаем: видюха сапфир 9600 про, при загрузке системы...

Lenovo g500 интересный случай
У меня Lenovo G500 (2 USB 3.0 и один 2.0) перепаивал USB кабель и решил проверить его (не знаю чего...

Интересный случай с доступом к файлам
Недавно с таким столкнулся: в одной из папок в Program Files (x86) лежали файлы, которые не было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru