5
Virtual method interception可用於'proxify'方法,以便可以在原始方法之前和之後執行自定義代碼。我可以使用TVirtualMethodInterceptor實現實例計數監視嗎?使用Delphi XE引入的
這是否也可用於通過代理虛擬方法TObject.AfterConstruction和TObject.BeforeDestruction來保持Delphi應用程序中所有對象實例的計數?
如果是,這可能是一種在運行時分析FastMM4內存分配統計信息的簡單方法(使用對象的InstanceSize屬性並將其與分配的內存塊進行匹配)。
更新:對不起,問這是很容易從DocWiki信息回答一個問題 - 我已閱讀鏈接的文章第一個也是唯一脫脂示例代碼
...是嗎?我看不出爲什麼。你試過了嗎?實現代理,遞增和遞減計數器(可能使用[線程安全增量/遞減](http://msdn.microsoft.com/en-us/library/windows/desktop/ms683614(v = vs.85).aspx )),呃...你去了。 – 2012-03-20 17:30:09
難道你不能通過修改FastMM來更簡單地做到這一點嗎? – 2012-03-20 17:51:49
@WarrenP FastMM不知道它提供內存塊的實際類型,它只處理內存分配/釋放請求 – mjn 2012-03-20 17:58:49