java - 如何避免或优化大型数据集的重复反序列化?
问题描述
我的应用程序是多线程的。每个线程从一个大数据集(大约 70mb,600 万行)中逐行读取,并根据该行进行一些计算。仅反序列化部分(Jackson 的 ObjectMapper#readValue)就需要消耗超过 11% 的整体 cpu。此外,加载到内存中还需要 2-3%。这将我的应用程序的性能降低了近 15%。考虑到相同的数据集由不同的线程一次又一次地加载,我该如何优化呢?由于大小,我无法将所有数据集保存在内存中并将数据传播到各个线程。我考虑过使用一些分布式内存框架(如 hazelcast)来创建分布式缓存。这样,每个数据集只加载一次到内存中,但这仍然需要反序列化,
谢谢!解决方案
推荐阅读
- vue.js - 突变后 Apollo 缓存未更新
- c# - 如何使用 TextChanged 事件将字符串附加到 TextBox 中的文本?
- html - Bootstrap 4 对绝对定位元素的响应
- python-3.x - 如何摆脱在 pip 中使用 --user
- ios - 如何在 ios 上调试 PhoneGap Javascipt App?
- android - Flutter 中基于平台自动选择原生组件/小部件
- php - PHP不会为多个查询抛出错误
- ember.js - 使用 ember-bootstrap 自定义元素改变变更集字段值
- c# - Caliburn.Micro [WPF MVVM] 中的 DataContext 为空
- google-apps-script - 更新 Google App Script Add On 时,是否会为已安装它的用户更新?