Я считаю, что AQTime трудно использовать, потому что он слишком сильно мешает оригинальной программе. Если у меня есть программа, которая использует, например, 300 МБ ОЗУ, я могу без проблем использовать профилировщик распределения AQTime и выяснить, где используется большая часть памяти. Однако я заметил, что при работе в AQTime оригинальная программа использует больше 1 ГБ при профилировании.
Сейчас я пытаюсь уменьшить использование памяти в программе, которая использует 1,4 ГБ памяти. Если я запускаю его под AQTime, то оригинальная программа использует все 2 ГБ адресного пространства и вылетает. Конечно, я могу изобрести меньший набор тестовых данных и оценить, как будет использоваться объем памяти с полным набором данных, но причина, по которой я в первую очередь использую профилировщик, состоит в том, чтобы попытаться избежать такого рода догадок.
У меня уже есть AQTime, установленный на «Сбор информации стека - нет», и все флажки, связанные с проверкой целостности памяти, отключены, и я попытался ограничить профилируемую область только несколькими классами, но это не так. Кажется, ничего не улучшится. Есть ли способ использовать AQTime, который дает меньше накладных расходов? Или, в случае неудачи, какие есть другие подходы, чтобы получить представление об используемой памяти?
Приложение написано на Delphi 2010, и я использую AQTime 6.
NB. Помимо увеличения использования памяти, запуск под AQTime сильно замедляет работу приложения, делая все упражнение не просто невозможным, но и непрактичным: -P