注:勾选Memory Usage进行Native内存抓取
不带pdb要进行Native内存抓取
点击Start按钮开始进行内存分析
点击“Stop Collection”按钮,来结束Profile。
注:如果报如下错误:Failed to load memory usage view: System.NullReferenceException,需要将VS2022升级到最新或使用VS2019
注1:Native Allocations为当前Native内存分配次数(不包含被释放的)
注2:Native Heap Size为当前的Native堆大小(不包含被释放的)
注3:点击橙色框的数字,则会打开Snapshot 1与Snapshot 2的diff数据
点击绿框数字,打开Snapshot 1的Native Memory数据
注:右上角Compare With Baseline下拉框中,可以选择其他的Snapshot,来查看两个Snapshot之间的diff数据
点击Unresolved allocations,得到如下列表:
点击Stacks标签,以堆栈聚类的方式来查看Native内存分配
带pdb进行Native内存抓取
如果把pdb文件与exe文件放在一起,则Profile时会自动进行符号解析
重新运行Performance Profiler,抓取一个41.40s的Snapshot,此时可以看到地址已经被解析成了符号
点击mytest1-win64-debug!FStatMessage,得到如下列表:
点击Stacks标签,以堆栈聚类的方式来查看Native内存分配
注1:点击Stacks标签页会执行归类操作,非常卡
注2:展开树节点不卡,但是选中某行时非常卡
参考
在不进行调试的情况下分析性能探查器中的内存使用情况(C#、Visual Basic、C++、F#)
标签:VS2022,抓取,Profiler,点击,Snapshot,内存,Performance,Native From: https://www.cnblogs.com/kekec/p/18018324