【发布时间】:2018-11-02 06:45:11
【问题描述】:
我想针对列表优化 ObjectMapper。要求是我需要在列表的每个元素之后添加一个分隔符。我当前的代码如下所示:
StringBuilder strBuilder = new StringBuilder();
for (Event event : segregatedList) {
String eventJson = mapper.writeValueAsString(event);
strBuilder.append("\n");
strBuilder.append(eventJson);
}
对于长列表(约 10000 个事件),这需要大量时间。如何优化代码以一次性序列化列表?
【问题讨论】:
-
我认为如果您根据
segregatedList中的元素数量在多个线程中划分任务。例如,如果您使用 4 核 cpu 并且列表大小约为 10000,则将此列表划分为来自~ 0 - 2500的 4 线程第一个线程进程,列表中的第二个~2500-5000等第 4 个线程。使用倒计时锁存器确保所有线程都完成。一旦所有线程完成他们的任务,然后将结果组合成一个字符串。
标签: java jackson objectmapper