[WT] [Архив] [Поиск] [Главная] [Управление]
[Совместно с IIchan.ru]

[Назад]
Ответ в нить

Имя
Адрес  [sage] [noko]
Animapcha image [?]
Тема   (reply to 3354)
Сообщение
Файл 
Пароль  (для удаления файлов и сообщений)
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаемые типы файлов: 7Z, BZ, GIF, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP
  • Максимально допустимый размер файлов: 10000 кБ.
  • Изображения, размер которых превышает 200 на 200 пикселей, будут уменьшены.
  • Ныне 1200 unique user posts. Посмотреть каталог
  • Радио:

Файл: 129423138711.jpg-(157.50KB, 640x638, 1263732735GmuJFNtZ.jpg)
3354 No. 3354 watch
Привет, Стив. Подскажи, как во встроенном ассемблере Турбо Паскаля реализовать подсчет количества тактов процессора, происходящих за время выполнения какого-то участка кода? Мне нужно измерить быстродействие записи на жесткий диск. Погуглив, я нашел команду rdtsc, но она не принимается ТП, да и не мудрено - расширенных регистров (EAX, etc) в нем нет. Менять среду разработки не хочется, программа уже почти готова, да и попытавшись запустить тот же код во Free Pascal'e я получил гору ошибок на то, что отлично работало раньше.
Как вариант, можно бы попробовать измерить время в миллисекундах, но по умолчанию разрешение таймера - 1/18.2 с, что слишком мало.
>> No. 3355
Банальным умножением. Ты же знаешь сколько и каких команд выполнилось за нужный промежуток? Берешь справочник по ассемблеру, находишь за сколько тактов выполняются эти команды и умножаешь.

Но лучше перепрограммировать таймер.
>> No. 3356
>>3355 Нет. Количество тактов зависит от конкретного процессора, плюс конвейер процессора, там всё совсем не просто.
Если бы ты писал на чём-нибудь поновее, я бы посоветовал делать
LFENCE
RDTSC
>> No. 3357
Алсо, если под вендой, то там есть QueryPerformanceCounter и подобные.
[Назад]


Удалить сообщение []
Пароль  
[Mod]