Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› Время выполнения процедур
Посл.ответ Сообщение

Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 08 февраля 2006 23:35
· Личное сообщение · #1

Пытаюсь считать такты (аттач). Но странные результату получаются, может посмотрит кто. Спасибо.


a704_speed_test.rar.zip



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 09 февраля 2006 01:40
· Личное сообщение · #2

asd пишет:
Пытаюсь считать такты (аттач). Но странные результату получаются, может посмотрит кто. Спасибо.


А ты не пытался написать нечто вроде описания своих действий в этом случае? Если ты просишь помощи, будь добр хотя бы что-то написать!



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 09 февраля 2006 09:42
· Личное сообщение · #3

SeQuick
А ты не пытался написать нечто вроде описания своих действий в этом случае?
В аттаче закоментированый исходник 1,7 кб. Кода строк 80.

Пытаюсь делать следующее: получаю количество тактов, запоминаю его. Затем выполняется код, такты которого хотим посчитать. Получаем количество тактов и отнимаем предыдущее значение. И так 100 раз. Вычисляем среднее... и получаем странные результаты.



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 февраля 2006 16:10
· Личное сообщение · #4

Я наверное ошибаюсь, но RDTSC показывает количество тактов со времени старта процессора - то бишь если не задать программе RealTime - приоритет, процессор может оборвать твою программу в середине и передать вожделенные такты другой программе.



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 09 февраля 2006 20:20
· Личное сообщение · #5

asd Можно использовать функцию GetTickCount, вызываешь перед выполнением критического участка, запоминаешь значение, вызывашь после, вычитаешь из предидущего, если результат больше ХХ, значит дебаг.

-----
Research is my purpose




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2006 09:50
· Личное сообщение · #6

awesome
Ты прав, я для того и замеряю тики 100 раз. Потом моно отбросить откровенно большие варианты. Но не в этом дело. Там результаты замеров получаются очень уж для меня не понятные. Примерно так: первые 3 раза всё прожодит нормально, потом 13 нулей, затем ещё 3 раза всё хорошо, ещё 13 нулей и т.д. У меня уже крыша едет от таких фокусов.

Error_Log
Спасибо, попробую. Но это не для защиты, как ты наверно подумал. Так, просто учусь оптимально писать, вот тестер и понадобился.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 10 февраля 2006 10:21
· Личное сообщение · #7

asd пишет:
просто учусь оптимально писать, вот тестер и понадобился.

так может тогда имеет смысл воспользоваться готовыми профилировщиками.



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2006 10:24
· Личное сообщение · #8

Самому охота. Да дело уже не в тестере, а в этом глюке, ведь быть такого не должно.



Ранг: 18.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 10 февраля 2006 13:27
· Личное сообщение · #9

asd
Может глянешь сорсы от Agner'a Fog'a Test programs for measuring clock cycles http://www.agner.org/assem/



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2006 13:41
· Личное сообщение · #10

Spiteful
thx за ссылку. Домои приду разберусь.



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2006 20:51
· Личное сообщение · #11

Спасибо большое всем, кто принял участие. Тестер в аттаче, если кому нужен.

0553_speed_test.rar.zip


 eXeL@B —› Программирование —› Время выполнения процедур
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати