可可西

使用VS2022 Performance Profiler进行Native内存分析

注:勾选Memory Usage进行Native内存抓取

 

Memory Profiler Settings

 

不带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(快照) 1Snapshot(快照) 2diff数据

 

点击绿框数字,打开Snapshot(快照) 1的Native Memory数据

注1:Unresolved allocations为数据类型未确定的未分类分配(一般是没有符号表导致的)

注2:右上角Compare With Baseline下拉框中,可以选择其他的Snapshot(快照),来查看两个Snapshot(快照)之间的diff数据

 

双击Unresolved allocations,得到如下列表:

注:里面每一项都为一次Native内存分配

 

点击Stacks标签,以堆栈聚类的方式来查看Native内存分配

 

带pdb进行Native内存抓取

如果把pdb文件与exe文件放在一起,则Profile时会自动进行符号解析

 

重新运行Performance Profiler,抓取一个41.40s的Snapshot(快照),此时可以看到地址已经被解析成了符号

 

点击mytest1-win64-debug!FStatMessage,得到如下列表:

 

点击Stacks标签,以堆栈聚类的方式来查看Native内存分配

注1:点击Stacks标签页会执行归类操作,非常卡   -- vs2019不卡

注2:展开树节点不卡,但是选中某行时非常卡    -- vs2019不卡

 

VS2019

 

 

点击View Heap Contents得到:

 

参考

在不进行调试的情况下分析性能探查器中的内存使用情况(C#、Visual Basic、C++、F#)

posted on 2024-10-06 21:52  可可西  阅读(138)  评论(0编辑  收藏  举报

导航