我正在写很多东西来登录突发,并优化数据路径。我用 构建日志文本StringBuilder
。什么是最有效的初始容量,内存管理明智的,所以不管JVM如何它都能很好地工作?目标是几乎总是避免重新分配,这应该由大约 80-100 的初始容量覆盖。但我也希望尽可能少地浪费字节,因为 StringBuilder 实例可能会在缓冲区中徘徊并且浪费的字节突然出现。
我意识到这取决于 JVM,但应该有一些价值,这将浪费最少的字节,不管 JVM,有点“最小公分母”。我目前正在使用128-16
,其中 128 是一个不错的整数,减法用于分配开销。此外,这可能被认为是“过早优化”的情况,但由于我所追求的答案是“经验法则”数字,因此知道它在未来也会很有用。
我不期待“我最好的猜测”答案(我自己上面的答案已经是那个),我希望有人已经对此进行了研究并且可以分享基于知识的答案。