我在尝试理解内存使用图时遇到问题,希望在内存管理方面更有经验的人能够判断我是否面临内存泄漏问题
为了执行这个测试,我有一个自定义的 PS1 脚本,它将运行一个无限循环并每隔 X 秒持续发布大量数据,这与我在生产中所期望的非常相似。
我的应用是作为 Windows 服务运行的 .NET Core 控制台应用。没有使用第三方组件、外部库、原生 API 等。它是一个典型的多线程应用程序,它发出 HTTP 请求、写入磁盘、向前端应用程序发送通知。
当服务首次启动时,它只使用 33 MB。在第一个请求之后,它会跳转到 100 MB。在每个连续的请求中,内存都会以非常缓慢的速度增长。底部较小的图表显示了我进行测试时当晚的演变。看起来在某些时候内存会稳定在 500-600 MB。我看到托管内存被收集,不像我预期的那样频繁,但最终它被收集了。然而,正如我之前所说,非托管内存遵循自己的趋势,增长非常缓慢甚至稳定。在奇怪的情况下,我会说几乎随机地释放非托管内存(参见第二个捕获),但最终它会再次建立。
您在这里看到内存泄漏模式吗?