【发布时间】:2017-01-18 13:44:19
【问题描述】:
我在列表中插入 2_000_000 个长值。每次插入时,我都需要使用 SOP 将列表的大小打印到控制台。如果我不打印尺寸来控制台插入将在 250 毫秒内完成。如果我每次插入一个值时都打印大小,则所用时间为 25000 毫秒。
知道如何解决这个性能问题吗?
我正在使用 Java7 和 Eclipse (kepler) 来测试我的实现。
注意:每次插入 long 值时都打印大小是问题定义所必需且强制的。
【问题讨论】:
-
您的问题是您向控制台提交了如此多的打印请求。建立所有列表长度的字符串并在最后提交会快得多。
-
如果要求每次都打印并且这意味着控制台/进程输出中的结果可见,那么您无能为力。所有建议缓冲的解决方案都意味着消息将在以后看到。当然,当总执行时间为 250 毫秒时,人类读者不会注意到延迟。
标签: java performance io