我有一个类,我想看看当这个类的对象被序列化时哪些子对象占用的空间最多。除了查看代码并手动分析之外,有没有什么好的工具/方法可以做到这一点?
例如,我想让工具说“成员 a 占 20%,b 30%,成员 c 占 50%”。
谢谢
PS我发现了一些相关的问题,但没有找到我的具体问题的答案。
我有一个类,我想看看当这个类的对象被序列化时哪些子对象占用的空间最多。除了查看代码并手动分析之外,有没有什么好的工具/方法可以做到这一点?
例如,我想让工具说“成员 a 占 20%,b 30%,成员 c 占 50%”。
谢谢
PS我发现了一些相关的问题,但没有找到我的具体问题的答案。
计算对象大小的唯一相对较快的方法是首先写入整个对象,计算使用情况(例如,写入 ByteArrayOutputStream),然后写入每个引用的对象。
有几点需要考虑:
有关协议的说明,请阅读此说明。
好吧,我从来没有听说过这样的工具。但我认为内存中的对象大小和序列化对象大小之间存在某种关系。因此,您可以尝试使用分析器:VisualVM,它包含在 JDK 或我最喜欢的YourKit Profiler中。
DbVisualizer提供了Serialized Java Objects Viewer。
serialysis
在 Eclipse 是否有用于 java 序列化文件的编辑器/查看器中还提到了一个工具?