我在Spring-boot应用程序中遇到内存泄漏,在使用Eclipse MAT进行heapdump分析之后,它指出了Spring启动执行器中的潜在内存:恰好使用InMemoryAuditEventRepository(审计事件)。
One instance of "org.springframework.boot.actuate.audit.InMemoryAuditEventRepository" loaded by "sun.misc.Launcher$AppClassLoader @ 0xe7020a30" occupies 210 676 784 (57,25%) bytes. The memory is accumulated in one instance of "org.springframework.boot.actuate.audit.AuditEvent[]" loaded by "sun.misc.Launcher$AppClassLoader @ 0xe7020a30".
Keywords
org.springframework.boot.actuate.audit.InMemoryAuditEventRepository
org.springframework.boot.actuate.audit.AuditEvent[]
sun.misc.Launcher$AppClassLoader @ 0xe7020a30
禁用此内存中审核事件的最佳方法是什么:
提前致谢
答案 0 :(得分:0)
遇到相同的发现...
经过一些调查,发现这不是泄漏,而是Spring Boot存储了最后的4000个Security(登录)审计事件。它将增长到该数量,然后保持在那里...
您可以创建自己的实现,然后将其写到Cache或DB中,而不将其保留在内存中。.