PerfView 中视图之间的差异

问题描述

我正在跟踪我的应用程序中在 GC 堆上分配的内容,并尝试将 PerfView 用于此目的。我的应用程序分配了很多,我试图找出分配最多的对象以减少内存压力。如果这是相关的,则所有分析都在实时生产应用程序上执行。

我想我应该使用 .NET Alloc.NET SampAlloc 选项来跟踪使用 PerfView 的应用程序中的分配。但是我在分析收集到的trace时遇到了一个问题。

根据 documentation (Ctrl + f "Net GC Heap Allocations Stacks (GC Heap Net Mem view)" to moreless 找到提到它的部分) 有两个视图应该传达给定足够的样本,大致相同的信息:

  • GC 堆分配忽略空闲(粗采样)堆栈
  • GC 堆网络内存(粗采样)堆栈

enter image description here

但就我而言,它们包含完全不同的信息。所以问题是:这些观点(简单来说)之间有什么区别,它们与我正在尝试进行的分析是否相关?如果不是,我应该使用哪些其他选项?(除了转储堆和转储之间的差异 - 应用程序分配了很多,真的很难推理这样的过程,这就是我寻找更多统计分析的原因GC分配活动的工具)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)