我有一个类,我想看看当这个类的对象被序列化时哪些子对象占用的空间最多。有没有什么好的工具/方法可以做到,除了查看代码并手动分析它?
例如,我希望该工具说“成员a占20%,b占30%,成员c占50%”。
由于
P.S。我发现了一些相关的问题,但没有找到我在那里的具体问题的答案。
答案 0 :(得分:1)
计算对象大小的唯一相对快速的方法是首先编写整个对象,计算用法(例如,写入ByteArrayOutputStream),然后编写所引用的每个对象。
有几个需要考虑:
有关协议的说明,请阅读this description。
答案 1 :(得分:-1)
好吧,我从来没有听说过这样的工具。但我认为内存中的对象大小与序列化对象大小之间存在某种关系。因此,您可以尝试使用分析器:VisualVM,它包含在JDK或我最喜欢的YourKit Profiler中。
答案 2 :(得分:-1)