首页 > 解决方案 > 计算序列化 x 兆字节文件所需内存的公式

问题描述

如何计算序列化 5 mb 文本的 json 对象需要多少堆内存?

如果这很重要,我正在使用 kotlin 中的 fasterxml.jackson 库

标签: jsonperformanceserializationjackson

解决方案


这个问题很广泛,主要取决于您为类中的属性选择的数据类型POJO。例如,假设您有十个int属性或十个BigInteger属性,您可以选择日期Calendar类型或long,等等。如果文件大小是5mb,我假设它应该包含一些对象列表。在这种情况下,您可以创建包含对象的小JSON文件,100并在运行时测量大小。您可以计算每种类型的平均大小POJO并将其乘以JSON给定类型的文件中的项目数。公式可能如下所示:

在此处输入图像描述

在哪里:

  1. t- 不同POJO类型的数量。
  2. a ii-th POJO -运行时对象的平均大小。
  3. n i -i-th POJO反序列化后的对象数。

看:

  1. 用Java计算对象的大小
  2. 如何在 Java 中获取对象的大小

推荐阅读