Могу ли я реализовать мониторинг количества экземпляров с помощью TVirtualMethodInterceptor? - PullRequest
5 голосов
/ 20 марта 2012

Перехват виртуальных методов - представлен в Delphi XE - может использоваться для «проксирования» методов, чтобы пользовательский код мог выполняться до и после исходного метода.

Может ли это также использоваться для ведения подсчета всех экземпляров объектов в приложении Delphi путем проксификации виртуальных методов TObject.AfterConstruction и TObject.BeforeDestruction?

Если да, это может быть простой способ анализа статистики распределения памяти FastMM4 во время выполнения (используя свойство InstanceSize объектов и сопоставляя его с выделенными блоками памяти).


Обновление: извините за вопрос, на который было очень легко ответить из информации DocWiki - сначала я прочитал связанную статью и только просмотрел пример кода

1 Ответ

3 голосов
/ 20 марта 2012

Нет, это не сработает. Из документации , с моим акцентом:

Позволяет пользователю динамически перехватывать вызовы виртуальных методов на указанных экземплярах определенного типа класса.

Проблема заключается в том, что вам нужно овладеть каждым экземпляром, прежде чем вы сможете проксировать. Но вы надеетесь проксировать, чтобы заполучить экземпляры. Так что теперь вы попали в сценарий с курицей и яйцом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...