информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеЗа кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
лучше использовать rdtsc 16.04.03 10:00  Число просмотров: 1278
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> делая в цикле по 100 nop'ов и потом общее число тактов деля
> на время у меня получается число в три раза большее, чем
> частота проца
>
> так и должно быть?
> т.е. частота проца показывает сколько трёх-тактнах команд в
> секунду выполняет процессор?

Не совсем понятно, чем мерялось время и такты. Для современных процессоров такты измеряются командой rdtsc (код 0f 31), а время - могут быть варианты. Проще всего сделать 2 команды rdtsc, разделенные Sleep'ом на секунду - разность тактов сразу даст неплохое приближение частоты процессора. Если нужна большая точность, то нужно или частоту привести к кратной 33/50/66 Мгц, или задать больший интервал времени, или лучше учитывать время начала/конца Sleep (хотя бы через GetLocalTime), или сделать все это сразу.

Что касается трех инструкций за такт - вполне ожидаемый результат. Начиная с Пентиум3 за один такт может быть декодировано до 3 команд, выполнение Nop'ов времени не занимает вовсе - что и наблюдалось.
<programming>
определение частоты процессора 15.04.03 22:07  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
(в том числе и в 98, где нет ключа в реестре)

делая в цикле по 100 nop'ов и потом общее число тактов деля на время у меня получается число в три раза большее, чем частота проца

так и должно быть?
т.е. частота проца показывает сколько трёх-тактнах команд в секунду выполняет процессор?
лучше использовать rdtsc 16.04.03 10:00  
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> делая в цикле по 100 nop'ов и потом общее число тактов деля
> на время у меня получается число в три раза большее, чем
> частота проца
>
> так и должно быть?
> т.е. частота проца показывает сколько трёх-тактнах команд в
> секунду выполняет процессор?

Не совсем понятно, чем мерялось время и такты. Для современных процессоров такты измеряются командой rdtsc (код 0f 31), а время - могут быть варианты. Проще всего сделать 2 команды rdtsc, разделенные Sleep'ом на секунду - разность тактов сразу даст неплохое приближение частоты процессора. Если нужна большая точность, то нужно или частоту привести к кратной 33/50/66 Мгц, или задать больший интервал времени, или лучше учитывать время начала/конца Sleep (хотя бы через GetLocalTime), или сделать все это сразу.

Что касается трех инструкций за такт - вполне ожидаемый результат. Начиная с Пентиум3 за один такт может быть декодировано до 3 команд, выполнение Nop'ов времени не занимает вовсе - что и наблюдалось.
спасибо, по rdtsc в яндексе полно ссылок 16.04.03 13:16  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach