我想问你一些关于
ObjectMapper.readvalue()
的事情。
ObjectMapper mapper = new ObjectMapper();
List<ConvertType> responseList = new ArrayList<>();
for (ExampleContent content : iterable) {
String json = new String(content.getData(), StandardCharsets.UTF_8);
responseList.add(mapper.readValue(json, ConvertType));
就像上面的代码,我想反序列化并将json数据保存到列表中。
但是,当我重复执行代码时,直接缓冲内存使用量会增加。有时,会出现直接缓冲内存不足的问题。
使用 ObjectMapper 反序列化是否分配直接缓冲区内存而不是堆内存? 如果是这样,如何减少直接缓冲内存的使用量?
ObjectMapper
使用堆内存进行反序列化,而不是直接缓冲内存。直接内存主要用于IO操作。
我建议使用分析工具来识别导致直接内存缓冲区增加的来源,这可能源于应用程序中其他地方的内存泄漏。此外,请确保使用
ObjectMapper
的单个实例,以减少创建新实例的意外情况。