首页 > 解决方案 > 如何避免或优化大型数据集的重复反序列化?

问题描述

我的应用程序是多线程的。每个线程从一个大数据集(大约 70mb,600 万行)中逐行读取,并根据该行进行一些计算。仅反序列化部分(Jackson 的 ObjectMapper#readValue)就需要消耗超过 11% 的整体 cpu。此外,加载到内存中还需要 2-3%。这将我的应用程序的性能降低了近 15%。考虑到相同的数据集由不同的线程一次又一次地加载,我该如何优化呢?由于大小,我无法将所有数据集保存在内存中并将数据传播到各个线程。我考虑过使用一些分布式内存框架(如 hazelcast)来创建分布式缓存。这样,每个数据集只加载一次到内存中,但这仍然需要反序列化,

谢谢!

标签: javaserializationin-memory

解决方案


推荐阅读