Что, если таковые имеются, штраф ресурса за использование Системы. Диагностика. Секундомер?

После поиска решения для часов в часы я наконец нашел проблему, прежде чем выполнить vector3.project(camera);, вам необходимо обновить матрицу камеры следующим образом: camera.updateMatrixWorld(); это решит проблему со странными значениями.

Надеется, что это поможет кому-то в будущем!

10
задан JaredPar 27 April 2009 в 21:55
поделиться

3 ответа

Я считаю, что секундомер построен поверх QueryPerformanceCounter, поэтому каждый вызов приводит к переходу ядра. Если foo () очень короткое, накладные расходы QPC затмят его.

Если вы используете секундомер для измерения коротких задач, вы должны запускать foo () много раз (например, тысячи) и использовать секундомер вокруг всего пакета. Разделите общее время на количество прогонов, чтобы получить среднее время выполнения задачи.

9
ответ дан 3 December 2019 в 22:39
поделиться

Это звучит как рекурсивный ответ, но единственный способ по-настоящему узнать штраф секундомера - это измерить его. Измерение управляемого кода обычно включает в себя экземпляры секундомера.

Секундомер предназначен только для диагностических целей и не должен использоваться в розничной продаже. Если, конечно, вы находитесь в режиме диагностики. Следовательно, это действительно не должно быть проблемой для не диагностического кода. Можете ли вы дать некоторое представление о вашем сценарии, чтобы мы могли дать лучший ответ?

Экземпляры секундомера строятся (обычно) поверх вызова QueryPerformanceCounter. Они не бесплатны, но и не слишком дороги. Все, что стоит измерить с помощью секундомера, будет достаточно долго выполняемой задачей, поэтому стоимость задачи сделает вызов QueryPerformanceCounter незначительным. В противном случае, почему вы это измеряете?

4
ответ дан 3 December 2019 в 22:39
поделиться

По моему опыту, есть некоторые заметные издержки при использовании класса Секундомер . Конечно, гораздо больше, чем использование Environment.TickCount или чего-то подобного для измерения времени, но все же не слишком здорово. Тем не менее, это может или не может быть большой проблемой для вас. Если измеряемый период времени, как правило, очень короткий (как обычно должно быть при использовании секундомера , учитывая, что другие методы также хороши для синхронизации более длинных периодов), тогда на производительность не должно влиять ощутимо, я бы вообразил. Кроме того, в конце этой страницы есть что сказать о стоимости запуска секундомера в вашей программе. (Однако я не уверен, что воспользуюсь советом по его использованию для постоянного мониторинга программ.)

В конце этой страницы есть что сказать о стоимости запуска секундомера в вашей программе. (Однако я не уверен, что воспользуюсь советом по его использованию для постоянного мониторинга программ.)

В конце этой страницы есть что сказать о стоимости запуска секундомера в вашей программе. (Однако я не уверен, что воспользуюсь советом по его использованию для постоянного мониторинга программ.)

2
ответ дан 3 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: