Время выполнения!

Тема в разделе "WASM.WIN32", создана пользователем FiDeLcheG, 16 мар 2008.

  1. FiDeLcheG

    FiDeLcheG New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2008
    Сообщения:
    3
    Господа товарищи, помогите мне! Короче, тут такое дело, нада определить время выполнения ассемблерной КОМАНДЫ, Подскажите, какую функцию лучше юзать...Можно как на С++ так и на Дэлфи...Спасибо!
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    никак нельзя определить время выполнения одной команды.
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    FiDeLcheG
    Сейчас процессоры очень сложны и команды теперь исполняются нелинйно, а паролельно.
    Плюс введена конвеерная обработка команд, так что разные этапы выполнения команды также идут паролельно.
    Так, что о каком времени выполнения идет речь? У Агнера Фога можешь посмотреть код процедуры. Но нюансов измерений много.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    FiDeLcheG
    А немного подумать? Любая функция потребует выполнения многих команд, т.е.
    точность любого метода измерения времени не может быть подходящей.
    Мне нравится такой метод : крутим много-много раз цикл с командой
    и без нее и считаем разницу. Ясное дело, что придется еще побороть
    кеши всякие. Тогда разница времен деленная на число итераций даст ответ.
     
  5. FiDeLcheG

    FiDeLcheG New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2008
    Сообщения:
    3
    Спасибо товарищи, как говориться будем посмотреть...У нас просто по архитектуре ЭВМ препод задание выдал...делайте грит и все тут...Ну куда деваться))))
     
  6. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    холодно - GetTickCount()
    теплее - SetThreadAffinityMask(), QueryPerformanceCounter()
    Угадываю, что то, что хотят услышать - инструкция rdtsc.
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Еще теплее, но правильный ответ - не юзать никаких инструкций, а заглянуть в instruction_tables.pdf Агнера Фога, а заодно и в microarchitecture.pdf, чтобы получить представление о работе современных компов и не задавать наивных вопросов ;)