Конференция "WinAPI" » Измерение времени выполнения внутри потока
 
  • Unknown user © (31.01.09 21:11) [0]
    Подскажите, пожалуйста, API функцию для этой задачи. Помню, что такая присутствует, но никак не вспомню названия.
  • DVM © (31.01.09 22:52) [1]
    QueryPerformanceCounter() ?
  • Unknown user © (31.01.09 23:05) [2]
    Нет, мне надо измерить время которое поток затратил на выполнение определенных операций. GetTickCount использовать нельзя не в силу своей низкой точности, а из-за того, что Windows приостанавливает поток когда передает выполнение другим потокам.
  • Сергей М. © (01.02.09 10:30) [3]

    > Unknown user


    Одна и та же операция в разных условиях м.б. выполнена потоком за разное время. Что толку в таких измерениях, если условия неподконтрольны ?

    Можно, конечно, на время измерения установить real time - класс приоритета просесса и повысить приоритет потока до time critical, но подобного рода лабораторные эксперименты неприменимы в боевых условиях.
  • Leonid Troyanovsky © (01.02.09 14:32) [4]

    > Unknown user ©   (31.01.09 21:11)  

    > Подскажите, пожалуйста, API функцию для этой задачи.

    GetThreadTimes

    --
    Regards, LVT.
  • Unknown user © (01.02.09 14:32) [5]
    >Одна и та же операция в разных условиях м.б. выполнена потоком за разное время. Что толку в таких измерениях, если условия неподконтрольны ?

    Мне нужно выяснить сколько времени поток затратил на загрузку данных, при этом параллельно идет загрузка в других потоках. То есть надо вычесть то время, которое поток простаивал, ожидая своей очереди.
  • Сергей М. © (01.02.09 14:59) [6]

    > Unknown user


    Что такое "загрузка данных" ?


    > время, которое поток простаивал


    Информация о вынужденных "простоях" потока по "вине" планировщика доступна только планировщику.
    GetThreadTimes не имеет доступа к этой информации.
  • Leonid Troyanovsky © (01.02.09 15:13) [7]

    > Сергей М. ©   (01.02.09 14:59) [6]

    > GetThreadTimes не имеет доступа к этой информации.

    Т.е., простои она не учитывает.

    --
    Regards, LVT.
  • Сергей М. © (01.02.09 15:23) [8]

    > Leonid Troyanovsky ©   (01.02.09 15:13) [7]


    Разумеется.
    Она учитывает только времена в kernel- и user-режимах, каждое из которых, в свою очередь, включает время вынужденного простоя.
  • Leonid Troyanovsky © (01.02.09 15:42) [9]

    > Сергей М. ©   (01.02.09 15:23) [8]

    > Она учитывает только времена в kernel- и user-режимах, каждое
    > из которых, в свою очередь, включает время вынужденного
    > простоя.

    These times do not include time spent executing system threads or waiting
    in a suspended or blocked state.

    --
    Regards, LVT.
  • Сергей М. © (01.02.09 16:25) [10]

    > Leonid Troyanovsky ©   (01.02.09 15:42) [9]


    Здесь

    http://msdn.microsoft.com/en-us/library/ms683237(VS.85).aspx

    это уточнение отсутствует.

    Приведи ссылку, где оно есть ?
  • Leonid Troyanovsky © (01.02.09 17:44) [11]

    > Сергей М. ©   (01.02.09 16:25) [10]

    > Приведи ссылку, где оно есть ?

    Его ныне нет. Но оно было и осталось, скажем, в mobile.
    См. также SDK 2000.

    --
    Regards, LVT.
  • han_malign © (05.02.09 15:03) [12]
    HKEY_PERFORMANCE_DATA
 
Конференция "WinAPI" » Измерение времени выполнения внутри потока
Есть новые Нет новых   [134435   +38][b:0][p:0.001]