在没有 Windows 的非常短暂的应用程序中调试内存使用情况
Posted
技术标签:
【中文标题】在没有 Windows 的非常短暂的应用程序中调试内存使用情况【英文标题】:Debugging memory usage in a very short lived application without Windows 【发布时间】:2021-04-15 10:11:11 【问题描述】:我有一个运行时间少于 500 毫秒的控制台应用程序,但根据 BenchmarkDotNet 分配的内存超过 100 MB。
我试图弄清楚那些 100Mb 是什么,因为它没有加起来。但是我在 Linux 或 Mac 中找不到这样做的工具。一旦应用程序调用的方法结束,GC 就可以毫无问题地清理所有内存,所以这不是我在转储中看到的泄漏,除非我在退出方法之前的非常准确的时刻进行转储。我不清楚算法在内存使用中达到峰值的时刻。
我可以使用 dotnet-trace
获取 CPU 跟踪,并使用 Speedscope 在浏览器中显示它,但是当使用 gc-verbose
或 gc-collect
作为提供者时,我无法在 Speedscope 中显示跟踪。
dotnet-trace
有没有办法在控制台中打印所创建对象的统计信息或类似的东西?
【问题讨论】:
michaelscodingspot.com/dotnet-trace 【参考方案1】:试用 dotnet dump 并查看Tess Ferrandez 的这篇文章。
也许您可以分享更多信息。
【讨论】:
这就是我说我不能做的事情:D以上是关于在没有 Windows 的非常短暂的应用程序中调试内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章