с - замер времени выполнения
Какое значение в многозадачной среде имеют микро- и наносекунды?
Тем не менее, может, профайлер тебе поможет?
Keywords: PAPI
висит у меня сервер, значит.
запросы выполняются.
запрос выполняется на некотором количестве "УЗЛОВ". Этих "УЗЛОВ" сейчас порядка сотни.
запрос выполняется порядка секунды.
хотелось бы проанализировать --- какие "УЗЛЫ" обсчитываются больше времени, какие меньше.
но в принципе так и думал, ничего хорошего придумать тут нельзя.
Какое значение в многозадачной среде имеют микро- и наносекунды?А в чем проблема? Во-первых можно написать модуль к ядру, который поможет считать только то что нужно, и такие модули есть. Во-вторых если ты прогонишь некоторую последовательность инструкций 1000 раз и обнаружишь, что 999 раз она исполнялась 666 тактов, а 1 раз - 66666 тактов, согласись ты догадаешься к чему бы это.
PS. возможно вместо изучения PAPI проще будет заботать RDTSC. Но PAPI все-таки значительно более ценный опыт.
Под узлами понимаются, э-э..., вложенные функции?
НЕА, свои запросы, своя база.
Мне кажется, лучше был бы статистический подход. Нужно "прерывать" программу несколько сотен раз в секунду и смотреть в каком "УЗЛЕ" она сейчас работает. Потом посмотреть с какой частотой попадаем в какие "УЗЛЫ". Для userland программы можно попробовать сигналы в качестве "прерываний".
Тогда достаточно скомпилировать прогу с поддержкой профилирования.
Вроде ж профайлеры именно так делаютДа, есть такой профайлер! OProfile называецца.
Тогда достаточно скомпилировать прогу с поддержкой профилирования.Нет, как раз перекомпилировать нужно если хочешь _полную_ информацию собирать. А статистическую OProfile собирает без перекомпиляции, хоть libc профилируй, хоть вообще ядро
Оставить комментарий
SCIF32
gcc version 3.3.5 (Debian 1:3.3.5-12)как грамотно осуществлять замер времени выполнения процесса?
хотелось бы иметь неплохую точность (миллисекунды не устраивают - микро или нано)
сейчас использую times, но вроде получается, что он измеряет с точностью до миллисекунд.
пробовал gettimeofday --- но эта ф-я просто измеряет время. А мне хотелось бы следить только за временем процесса.