2014-12-28 21 views
3

我有一個在性能沉重的程序中大量使用(> 400,000個實例)的類。在課堂上離開這些方法會嚴重影響每個對象的內存使用情況,還是不重要?我應該離開方法我不使用類?

+0

**這些**消息是什麼? –

+4

未使用的方法不會以任何有意義的方式影響您的運行時性能。當然,刪除它們可能會提供其他好處(最便宜的代碼是不存在的代碼)。 –

+0

在合理範圍內,額外未使用的方法不起作用。 –

回答

3

該類在首次使用時加載到內存中,並且在正常情況下只加載一次。實際上,Classequals方法編寫爲==,這意味着Java期望它是完全相同的對象。

這與實例不同,它們在實例化時分配內存並在垃圾收集時取消分配。

如果您的班級未使用字段,則更值得關注。每個字段將消耗少量內存,但是乘以活動實例的數量可能相當於大量內存。即使該字段初始化爲null,情況也是如此。如果該字段被初始化爲一個新的對象,那麼這可以消耗更多的內存,這取決於對象的大小。

4

加載該類所消耗的內存將與代碼的大小相對應,但是該代碼不會爲該類的每個實例重複使用。

實例只需要與實例屬性一樣多的內存+管理對象實例本身的一些開銷。

如上所述,存在維護成本,什麼不是。刪除死代碼通常會更好,但更改也會帶來成本。考慮這些方面。

相關問題