带旁白、原创配乐和字幕。在 VS Code 中录制的 Storefront 演示 C# 完整流程:Profile CPU 和热力图、Track Memory、可疑泄漏、根为静态字段的保留图、输入修复代码,然后再次运行。快进的片段在画面上有标注。

在 VS Code 中用 SharpLsp 分析 C# 应用:热点行的 CPU 热度、最热的函数,以及发现并修复一个泄漏的静态字典

阅读指南:性能分析器

文字稿

这是 Storefront,一个正在运行的 C# 应用。SharpLsp 无需重启即可附加到它上面,采样它的时间都花在了哪里。

停止性能分析器,编辑器里每个热点行都会亮起:商品目录解析、折扣循环,还有一个字符串一个字符串拼出来的发票。

结果列出了最热的函数和最热的代码行,让你清楚地知道该从哪里下手。

现在跟踪同一个应用的内存。SharpLsp 每十秒为堆拍一次快照。

可疑项按持续增长程度排序。CustomerSession 在每个快照里都在增长,它持有的字节数组也一样。点击它,就会跳到它的代码。

那么,是什么让这些会话一直存活?

图中标出的一个静态字典,保存着应用见过的每一个会话。

修复方法:只保留最近一千笔订单,其余的淘汰。

重新构建,再次运行,然后跟踪内存。

这一次,堆保持平稳。这就是适用于 C# 和 F# 的 SharpLsp 性能分析器。免费,而且开源。