2016-03-25 70 views
0

我正在開發一個類,它將代表Java中一個表中的一組行。行可以是緊湊或擴展格式。可以使用函數調用來檢測對象中的內部格式。Java中的內存佔用量估算

我試圖編寫一個單元測試來了解這個對象的緊湊和擴展格式的內存佔用情況。我用記憶表https://github.com/jbellis/jamm)。我注意到即使底層數據在不同的運行中保持相同,對象的深度大小也顯示爲不同。我對此有點困惑。我的期望是通過對象圖的遍歷應該能夠正確估計sizeof(object)。這可能是我使用的軟件包的問題,​​或者是我的期望錯誤?

回答

1

如果測試中的代碼使用延遲初始化,或者測試用例執行不同的操作,則內​​存中的實際實例可能在計數,大小和偶數類型上有所不同。

我會驗證你的不同運行是否使用相同的測試用例,如果他們不是,我不會假設相同輸入的內存消耗是相等的。

+0

感謝您的快速響應。當你對同樣的測試用例說「等價」時,你的意思是相同的數字(例如:每次運行550字節)還是小的差異?在C++中,sizeof()在給定的平臺上提供了非常精確的估計。 – ToyElephant