Я надеюсь не, все используют Рациональный, Очищают.
Таким образом, что Вы делаете, когда Вы хотите иметь размеры:
В данный момент мы делаем это вручную [использующий заявления регистрации с метками времени и другой сценарий, чтобы разобрать регистрацию и произвести, чтобы выделиться. уф...)
Что Вы рекомендовали бы? Указывание на инструменты или любые методы ценилось бы!
ОТРЕДАКТИРУЙТЕ: Извините, я didn' t определяют окружающую среду сначала, Ее равнина C по собственному мобильному телефону платформа
I' ve, сделанный это много. Если у Вас есть IDE или ЛЕД, есть техника, который прилагает некоторые ручные усилия, но работает бесперебойно.
Предупреждение: современные программисты ненавидят это и I' m собирающийся получать downvoted. Они любят свои инструменты. Но это действительно работает, и Вы don' t всегда имеют хорошие инструменты.
Я принимаю в Вашем случае, кодекс - что-то как DSP или видео, которое работает на таймере и должно быть быстрым. Предположим, что Вы работаете на каждом тиканье таймера, подпрограмма A. Напишите некоторый испытательный кодекс, чтобы управлять подпрограммой в простой петле, сказать 1000 раз, или достаточно долго заставлять Вас ждать по крайней мере несколько секунд.
В то время как it' s управление, беспорядочно остановите его с ключом паузы и пробуйте стопку требования (не только прилавок программы) и сделайте запись его. (That' s ручная часть.) Делают это некоторое количество раз, как 10. Однажды недостаточно.
Теперь ищите общности между образцами стека. Ищите любую инструкцию или команду вызова, которая появляется по крайней мере на 2 образцах. Будут многие из них, но некоторые из них будут в кодексе, который Вы могли оптимизировать.
Сделайте так, и Вы получите хорошее ускорение, гарантируемое. Эти 1 000 повторений займут меньше времени.
Причина Вы don' t нужно много образцов, you' ре, не ища мелочи. Как то, если Вы видите конкретную команду вызова на 5 из 10 образцов, это ответственно в течение примерно 50% полного времени выполнения. Больше образцов сказало бы Вам более точно, каков процент, если Вы действительно хотите знать. Если you' ре как я, все, что Вы хотите знать, - то, где это, таким образом, Вы можете зафиксировать его и идти дальше к следующему.
Сделайте это до Вас can' t находят, что что-либо больше оптимизирует, и Вы будете в или около Вашей максимальной скорости.
Вы, вероятно, хотите различные инструменты для исполнительного профилирования и кодируете освещение.
Для профилирования я предпочитаю Акулу на МАКОСКСЕ. Это лишено Apple и очень хорошо. Если Ваше приложение - ваниль C, Вам необходимо использовать его, если Вы можете овладеть Mac.
Для профилирования на Windows Вы можете использовать LTProf. Дешевый, но не большой: http://successfulsoftware.net/2007/12/18/optimising-your-application/
(Я думаю, что Microsoft действительно стреляет themself в ногу, не предоставляя достойному профилировщику более дешевые версии Визуальной Студии.)
Для освещения я предпочитаю Контрольное устройство Освещения на Windows: http://successfulsoftware.net/2008/03/10/coverage-validator/ Это обновляет освещение в режиме реального времени.
Для сложных заявлений я - большой поклонник Intel' s Vtune. Это - немного отличающееся мышление традиционному профилировщику, это инструментует кодекс. Это работает, пробуя процессор, чтобы видеть, где указатель инструкции 1,000 раз в секунду. У этого есть огромное преимущество не требования любых изменений Ваших наборов из двух предметов, которые почти всегда изменили бы выбор времени того, что Вы пытаетесь измерить.
К сожалению, это бесполезно для .net или Явы с тех пор там isn' t путь к Vtune, чтобы нанести на карту указатель инструкции на символ любят есть с традиционным кодексом.
Это также позволяет Вам измерять все виды другого процессора/аппаратных средств центральные метрики, как часы за инструкцию, хиты/промахи тайника, хиты/промахи TLB, и т.д. которые позволяют Вам определить, почему определенные разделы кодекса могут занимать больше времени, чтобы бежать, чем Вы ожидали бы только, осматривая кодекс.
Если you' ре, делающее ' на metal' включенный ' C' система (I' m не совсем уверенный, что ' mobile' подразумеваемый в Вашей регистрации), тогда у Вас обычно есть некоторый таймер ISR, в который it' s довольно легкий пробовать кодовый адрес, по которому перерыв произошел (роя назад в стеке или смотря на регистры связи или безотносительно). Тогда it' s тривиальный, чтобы построить гистограмму адресов в некоторой комбинации granularity/range-of-interest.
It' s обычно тогда не слишком трудно, чтобы придумать некоторую комбинацию кодовых/сценариев/Excel листов, которая сливает Ваше количество гистограммы с адресами от Вашего файла символа/списка компоновщика, чтобы дать Вам информацию о профиле.
Если you' ре очень ограниченная RAM, это может быть что-то вроде боли, чтобы собрать достаточно данных для этого, чтобы быть и простым и полезным, но Вы должны были бы сказать нам больше о Вашей платформе.
nProf - Свободный, делает это для.NET.
Сделали работу, по крайней мере, достаточно, чтобы видеть 80/20. (20% кодекса, беря 80% времени)