我有一个在性能繁重的程序中大量使用的类(> 400,000个实例)。将这些方法留在类中会严重影响每个对象的内存使用情况,还是不重要?
答案 0 :(得分:4)
加载类所消耗的内存将与代码的大小相对应,但是,对于每个类的实例,代码不会重复。
实例只需要与实例属性一样多的内存+管理对象实例本身的一些开销。
如上所述,有维护成本,什么不是。删除死代码通常更好,但更改也需要付出代价。考虑这些方面。
答案 1 :(得分:3)
该类在第一次使用时被加载到内存中,并且在正常情况下仅加载一次。实际上,equals
的{{1}}方法写为Class
,这意味着Java期望它是完全相同的对象。
这与类实例不同,后者在实例化时分配内存,并在收集垃圾时解除分配。
如果您的班级有未使用的字段,那么更令人担忧的是。每个字段都会消耗少量内存,但是当乘以实时实例的数量时,可能会占用大量内存。即使字段初始化为==
,也是如此。如果将字段初始化为新对象,则可能会消耗更多内存,具体取决于对象的大小。