-2

请解释一下 Netty 中的 io.netty.allocator.maxOrder 是什么!

默认情况下,它的值为 11,因此每个块我得到 8192 << 11 = 16MiB 对于 Java 11 上的 2 个核心,我得到 4 个直接竞技场,每个竞技场有 6 个 DirectByteBuffers(我有内存转储)。所以 16Mib x 4 个竞技场 x 6bufs = 384Mib。

我的应用程序有基于 netty 的传输服务器,有数百个客户端连接发送大量小消息(每条消息一些 KB)。但我的应用程序也使用直接内存来满足自己的需要。所以额外的 384Mib 对我来说太贵了。

请告知,我可以将 io.netty.allocator.maxOrder 减少到 8 而不会使 netty 性能下降吗?

4

1 回答 1

0

你当然可以。只需使用分析器来了解此处的效果。这些数字是在编写实现时根据 jemalloc 论文/博客文章使用的。

于 2020-01-30T14:35:36.603 回答