Jackson BufferRecycler 中的内存泄漏

sti*_*kos 5 java jackson akka-http

我的应用程序是一个 Web 套接字客户端,它使用 Jackson 2.9.4 不断解析 JSon。我遇到内存泄漏,线程本地中的 SoftReferences 未被清除。

我已将 Jackson 配置为不使用 Thread Local,如下所示:

JsonFactory factory = new JsonFactory();
factory = factory.disable(JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING);
objectMapper = new ObjectMapper(factory);
Run Code Online (Sandbox Code Playgroud)

但是尽管有这个设置,我仍然看到 BufferRecycler 引用的 char[] 增加:

在此处输入图片说明

这会占用大约 40% 的物理内存,并且无论内存压力如何都会不断增长,直到我用完物理内存。

  1. 如何禁用 Jackson 使用 Thread Local?
  2. 是什么导致这个 BufferRecycler 引用保存在内存中?

谢谢,

斯蒂克