Проблема, которую я пытаюсь решить: Моя программа использует System.Win.ScktComp.TServerSocket
для связи с другим локальным процессом через Ethernet. Между получением пакета из локального процесса и отправкой ответа 100 мс - это не должно длиться так долго. Я пытаюсь выполнить мою программу с помощью отладчика, чтобы узнать, где расходуется это 100 мс.Как получить время процессора Delphi?
Проблема в том, что если я получу текущее время, пока я нахожусь в отладчике, он, очевидно, посчитает время, проведенное в приостановленном состоянии отладчика. Другая проблема заключается в том, что соответствующая часть моего приложения составляет TTimer
и управляется событиями, так что, когда процедура возвращается, вы не знаете, какая процедура будет вызвана далее.
Моей попытки: я могу отказаться от использования отладчика и print
текущего времени везде, как в все в OnTimer
процедурах и другие мероприятия.
Гораздо лучшее решение: Шаг через с помощью отладчика, получить время центрального процессора (который не влияет на время, потраченное остановился в отладчике) здесь и там, чтобы определить, где что 100мс теряется.
Нет, пытаясь приурочить свое приложение, пока он отлаживается, не даст значимых результатов. Инструмент это с профилировщиком или некоторым кодом регистрации. –
Я бы попробовал procmon. Запустите Procmon, запустите приложение, сделайте свою работу, остановите procmon, откройте Tools -> Stack Summary и развернитесь в своем приложении. * (Включить расширенный вывод в меню «Фильтр») * Если этого недостаточно, вы можете использовать [WPA] (https://www.google.be/search?hl=nl&q=defrag+tools+wpa&sourceid=ie8&rls=com. microsoft: nl-BE: IE-Address & ie = & oe = & gws_rd = ssl) * (хотя и с более крутой кривой обучения) * –
@DavidHeffernan Почему это не может быть сделано? В Python я могу остановиться в точке останова, распечатать время процессора с помощью 'clock()' (он использует C stdlib 'clock()') и время, которое он печатает **, не ** учитывает время, которое оно потратило приостановлено в отладчике. @Ливен спасибо за ваше предложение; не знал, что вы можете использовать Procmon для этого. – DBedrenko