В AQTime для Delphi он может очень быстро добираться до проблемных точек с помощью областей, триггеров и т. Д. Но мне кажется, что особенно если у вас очень много кода в областях для профилирования, то выполнение значительно замедляется, даже если профилирование НЕ включено.
Например, если я хочу профилировать определенную подпрограмму позднее в потоке программы, но не знаю, как она там вызывается, я бы подумал поместить эту подпрограмму только в качестве триггера, а исходное состояние для потоков - как Выкл. , а затем выберите «Полная проверка по подпрограммам / линиям». Однако, когда я делаю это, выполнение программы сильно замедляется еще до того, как будет запущена подпрограмма триггера.
Например, если «процесс подготовки» занимает около 5 минут без AQTime, то, когда я запускаю его с отключенным профилированием, он уже работает в течение 30 минут и продолжает работать, даже если я знаю, что триггер еще даже не был достигнут .
Я знаю, что могу попытаться обойти это, уменьшив количество профилируемых процедур / строк, но это не очень хорошее решение для меня, так как я хотел бы профилировать их все, как только доберусь до фактической процедуры триггера. .
Также еще один, часто лучший обходной путь, - запустить приложение без AQTime, а затем использовать Attach to Process после завершения «потока подготовки», но это работает хорошо только тогда, когда выполнение останавливается в GUI в нужном месте или иным образом обеспечивает подходящие сроки для крепления. Во всех случаях это не так.
Любые комментарии о том, почему это так, и есть ли что-то еще, кроме как просто попытаться уменьшить код из областей или присоединить позже к процессу?