随笔分类 -  dotTrace

摘要:一:背景 1. 讲故事 本篇是系列的最后一篇,我们从跨平台部署和自定义诊断的角度跟大家聊一聊 dottrace,希望对大家有所启发。 二:跨平台和自定义诊断 1. 如何跨平台诊断分析 如果 dottrace 只能在 windows 平台上跑,那确实不值得写一个系列,目前它可以横跨三大平台(Windo 阅读全文
posted @ 2025-06-30 15:05 一线码农 阅读(427) 评论(3) 推荐(1)
摘要:一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 ContinueWith 没有本质区别,这一篇我们就来聊一聊。 二: 阅读全文
posted @ 2025-06-30 08:35 一线码农 阅读(377) 评论(0) 推荐(0)
摘要:一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径采用底层的ETW机制,即开启 windows 底层日志,所以 dottrace 可以做,官方血统的 阅读全文
posted @ 2025-06-29 12:00 一线码农 阅读(440) 评论(0) 推荐(1)
摘要:一:背景 1. 讲故事 在我分析的众多dump中,有一些CPU爆高是因为高频的抛 Exception 导致,比如下面这张图,有 19 个线程都在抛 xxxResultException 异常。 从卦中虽知大量异常的痕迹,但从严谨的角度来说,最好再卜一卦,就是用 perfview 或者 dottrac 阅读全文
posted @ 2025-06-28 10:16 一线码农 阅读(276) 评论(0) 推荐(1)
摘要:一:背景 1. 讲故事 上一篇跟大家聊到了 UI Freeze 的问题,让大家感受到了时间轴的强大和美观,这个是 perfview 所不具备的,本篇跟大家聊一下用 dottrace 诊断Windows子系统模块(File,SQL),虽然perfivew也能做这些,毕竟都是基于ETW机制,但前者占据了 阅读全文
posted @ 2025-06-26 11:05 一线码农 阅读(395) 评论(3) 推荐(1)
摘要:一:背景 1. 讲故事 写这一篇是因为昨天看 dottrace 官方文档时,在评论区看到了一条不友好的评论,截图如下: 虽然语气上带有些许愤怒,但说实话人家也不是无中生有,作为 dottrace 的忠实粉丝我还是能够理解他的心情的,所以这篇我用最新的 2025.01 版 dottrace 来演示一下 阅读全文
posted @ 2025-06-25 12:20 一线码农 阅读(514) 评论(3) 推荐(5)
摘要:一:背景 1. 讲故事 在用 dotTrace 对程序进行性能评测的时候,有一个非常重要的概念需要使用者明白,那就是 时间度量 (Time measurement),主要分为两种。 墙钟时间 线程时间 在 dotTrace 中有四种测量维度,其中 Real time 对应着 墙钟时间,截图如下: 二 阅读全文
posted @ 2025-06-23 10:17 一线码农 阅读(489) 评论(2) 推荐(2)
摘要:一:背景 1. 讲故事 前面我们已经聊过四大诊断类型中的前三个 Sampling,Tracine,Line-by-Line,这篇补上最后一个诊断类型 Timeline,这也是真实场景中使用最多的,它能够采集到所有它能采集到的,比如: 线程栈数据 (函数执行时间) ETW事件 (Windows日志) 阅读全文
posted @ 2025-06-22 14:20 一线码农 阅读(320) 评论(0) 推荐(3)
摘要:一:背景 1. 讲故事 在所有与 .NET相关的JetBrains产品中,我觉得 DotTrace 是最值得深入学习和研究的一款,个人觉得它的优点如下: 跨平台诊断 (Windows,Linux,MacOS) 兼容 dotnet-trace 产出的 nettrace。 优秀的可视化界面,尤其是 ti 阅读全文
posted @ 2025-06-20 13:57 一线码农 阅读(736) 评论(6) 推荐(6)