Замер производительности

Тема в разделе "WASM.WIN32", создана пользователем microprogs, 2 окт 2006.

  1. microprogs

    microprogs New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2006
    Сообщения:
    54
    Привет всем!
    Задача: Написал кучу алгоритмов, хочу сравнивать статистическую эффективность.
    Чем лучше мерить время, за которое выполнился данный кусок кода?
    GetTickCount - Очень хреновая точность.

    Я остановился на паре QueryPerformanceCounter и QueryPerformanceFrequency...

    Но иногда выдает лажу!!!
    К тому же на процах с HT выдавала очень даже лажу!

    Есть ли еще средство, чтобы точно померить время, за которое выполнился кусок кода в Win32???

    Хотелось бы услышать не только вариант для приложения 3-ring, но и вариант 0-ring + аппаратный таймер.
    Ось: Win XP
     
  2. CnCVK

    CnCVK New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    108
    Попробуй комманды которые получают счетчик тактов процессора :)
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    microprogs
    Есть код, описан в мануалах Агнера Фога для замера производительности. Также bogrus написал свою тестилку, очень хорошую. Поищи по форуму.
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    microprogs
    Точнее QueryPerformanceCounter\QueryPerformanceFrequency может быть только RDTSC (и то на некоторых сочетаниях железа и ОС QueryPerformance реализуются через RDTSC).
    А проблема тут не в том - чем мерить, а в том - что и как мерить. Измерения выдают не "лажу", а общее время выполнения кода на данном железе под Win32 с учетом прерываний, переключения потоков или их параллельного исполнения на процах с двумя ядрами или с HT. "Очень даже лажа" это сам HT, в котором на одном ядре вперемежку крутятся два потока и мешают друг другу - отключи эту лажу на время измерений и будет тебе счастье :lol:
     
  5. microprogs

    microprogs New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2006
    Сообщения:
    54
    Это все хорошо.
    Но хотелось бы узнать способ лучше, чем QueryPerformanceCounter\QueryPerformanceFrequency???
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    microprogs
    Особенно приятно Агнеру Фогу, что ты одобряешь его метод :)

    Критерий?
     
  7. microprogs

    microprogs New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2006
    Сообщения:
    54
    Критерий - хочу из всех API функций найти ту, которая точнее всего померит.
    Ясно, что у нас потоки, многозадачная ось и т.д....
    Но все-таки - хочу померить скорость различных алгоритмов шифрования/сортировки...
    Померить среднестатистически!!! Я не собираюсь делать замер века, просто есть ли что-то точнее, чем QueryPerformanceCounter\QueryPerformanceFrequency, или на нем стоит остановиться??????
     
  8. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    microprogs
    А чем плох rdtsc?
     
  9. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Критерий - хочу из всех API функций найти ту, которая точнее всего померит.


    Такой увы нет !

    Вызывай напрямую команды которые выдают количество тактов проца ...
     
  10. microprogs

    microprogs New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2006
    Сообщения:
    54
    Он не плох =)
    Просто хочу узнать, можно ли тривиальными методами получить что-то лучшее...
     
  11. microprogs

    microprogs New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2006
    Сообщения:
    54
    Пример???
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    rdtsc
     
  13. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    microprogs
    Тебе уже несколько раз и про rdtsc сказали и в поиск по форуму отправили. Если тебе влом искать wintest от bogrus'а, то хоть в соседние топики загляни - как минимум в трех речь идет о замере тиков и у тебя под носом народ свои варианты тестилок выкладывает :lol:
     
  14. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    microprogs
    Куда уж тривиальнее?