2015-11-05 5 views
0

Я хочу, чтобы надежный способ (с точностью 0,1 с) до момента рендеринга и нашел solution (QueryPerformanceCounter) аналогичному problem. Однако есть drawbacks и некоторые предлагают, чтобы свести к минимуму количество запущенных процессов. Мой вопрос: являются ли приведенные тайминги QueryPerformanceCounter достаточно надежными (с учетом требуемой точности) и репрезентативными для работы, выполняемой ЦП, при наличии некоторых фоновых процессов (в небезопасном режиме в системе Windows) или при наличии (обратите внимание, что я отключил бы антивирусное программное обеспечение, это просто пример).QueryPerformanceCounter при наличии фоновых процессов

+1

Вы также можете захотеть взглянуть на QueryThreadCycleTime API. – rakeshdn

+0

@rakeshdn Итак, вы бы предпочли QueryProcessCycleTime (или перечисление QueryThreadCycleTime). Недостатком является то, что они больше не связаны с истекшим временем, но надежны как абстрактный способ сравнения производительности, если я правильно ее понимаю? – Matthias

+0

Ну, конечно, это так, как только ваша программа исчезнет в дикой природе, тогда она будет подвергнута аналогичным ограничениям. Никогда не оптимизируйте свои профилирующие результаты, вы хотите * представительский * номер, который у вас будет надежда на воспроизведение. Возьмите не менее 10 измерений и возьмите * medium *. –

ответ

1

Современные платформы (Windows> = 7, инвариантные TSC) обеспечивают безопасное использование QueryPerformanceCounter. Смотрите следующую ссылку на подробную документацию:

MSDN: Acquiring high-resolution time stamps

+0

Но они говорят только о таймингах между различными процессами и потоками не в присутствии нескольких процессов? – Matthias

+1

Это ** ** легко надежно соответствует вашей требуемой точности (0,1 с) при наличии фона и/или других процессов. – Arno

 Смежные вопросы

  • Нет связанных вопросов^_^