數我有在其操作期間使用一些許多對象(約3或4)班一個Perl庫。修補一類算創建的對象
在測試代碼,我想,以確保它是不是太多(我不是在談論內存泄漏,我知道如何檢查)。爲此,我想我可以統計每個使用的對象,並檢查測試數據上運行期間使用的最大值。然後,我會比較獲得的數字和一些關於庫應該使用多少對象的猜測。
不過,我已經得到了實現這個問題。我想到了兩種可能的方式:
攔截
Package::new
和Package::DESTROY
。然而,這有一點小問題,在該包中,new
並不總是返回一個新對象。有時候,它會使用一個已存在的對象(對象被用作不可變對象,所以它不應該太重要)。所以我必須跟蹤每個單獨的對象以查看它是否存在。截距
Package::bless
和Package::DESTROY
。這應該有效,但似乎有點不正統。
的問題是,它的那些方式是更容易成功(也許有什麼在類似情況下通常使用),其次,如何將我甚至實現第二個方法(我將不得不重寫Package::bless
爲所有有問題的軟件包或只有基礎類等)。
爲什麼你關心有多少物體在使用? – Schwern
@Shwern:如問題中所述,估計庫的內存使用情況。更確切地說,我需要它來確保沒有錯誤導致例如。二次存儲器複雜度。 – jpalecek