会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
14
15
16
17
18
19
20
21
22
···
46
下一页
2022年8月21日
PerfView专题 (第七篇):如何洞察触发 GC 的 C# 代码?
摘要: 一:背景 上一篇我们聊到了如何用 PerfView 洞察 GC 的变化,但总感觉还缺了点什么? 对,就是要跟踪到底是什么代码触发了 GC,这对我们分析由于 GC 导致的 CPU 爆高有非常大的参考价值,在以前我都是用 WinDBG 来实现,但这玩意需要做一些侵入性操作,实战起来不是那么丝滑,虽然有可
阅读全文
posted @ 2022-08-21 10:32 一线码农
阅读(980)
评论(1)
推荐(4)
2022年8月17日
PerfView专题 (第六篇):如何洞察 C# 中 GC 的变化
摘要: 一:背景 在洞察 GC 方面,我觉得市面上没有任何一款工具可以和 PerfView 相提并论,这也是为什么我会在 WinDbg 之外还要学习这么一款工具的原因,这篇我们先简单聊聊 PerfView 到底能洞察 GC 什么东西? 二:洞察 GC 1. 到底都能看到 GC 什么? 能获取到的 GC 信息
阅读全文
posted @ 2022-08-17 08:55 一线码农
阅读(1086)
评论(0)
推荐(5)
2022年8月16日
PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏
摘要: 一:背景 前几篇我们聊的都是 非托管内存泄漏,这一篇我们再看下如何用 PerfView 来排查 托管内存泄漏 ,其实 托管内存泄漏 比较好排查,尤其是用 WinDbg,毕竟C#是带有丰富的元数据,不像C++下去就是二进制。 二:如何分析 PerfView 用的是权重占比来寻找可疑的问题函数,为了方便
阅读全文
posted @ 2022-08-16 10:05 一线码农
阅读(2195)
评论(1)
推荐(3)
2022年8月15日
PerfView专题 (第四篇):如何寻找 C# 中程序集泄漏
摘要: 一:背景 前两篇我们都聊到了非托管内存泄漏,一个是 HeapAlloc ,一个是 VirtualAlloc,除了这两种泄漏之外还存在其他渠道的内存泄漏,比如程序集泄漏,这一篇我们就来聊一聊。 二: 程序集也会泄漏? 在我分析的一百多dump中,程序集方面的泄漏主要有 XmlSerializer 和
阅读全文
posted @ 2022-08-15 11:12 一线码农
阅读(1319)
评论(2)
推荐(6)
2022年8月14日
PerfView专题 (第三篇):如何寻找 C# 中的 VirtualAlloc 内存泄漏
摘要: 一:背景 上一篇我们聊到了如何用 PerfView 去侦察 NTHeap 的内存泄漏,这种内存泄漏往往是用 C 的 malloc 或者 C++ 的 new 分配而不释放所造成的,这一篇我们来聊一下由 VirtualAlloc 方法造成的泄漏如何去甄别? 了解 VirtualAlloc 的朋友肯定说,
阅读全文
posted @ 2022-08-14 10:23 一线码农
阅读(1333)
评论(3)
推荐(7)
2022年8月12日
PerfView专题 (第二篇):如何寻找 C# 中的 Heap堆内存泄漏
摘要: 一:背景 上一篇我们聊到了如何去找 热点函数,这一篇我们来看下当你的程序出现了 非托管内存泄漏 时如何去寻找可疑的代码源头,其实思路很简单,就是在 HeapAlloc 或者 VirtualAlloc 时做 Hook 拦截,记录它的调用栈以及分配的内存量, PerfView 会将这个 分配量 做成一个
阅读全文
posted @ 2022-08-12 17:09 一线码农
阅读(1576)
评论(1)
推荐(0)
2022年8月11日
PerfView专题 (第一篇):如何寻找 C# 热点函数
摘要: 一:背景 准备开个系列来聊一下 PerfView 这款工具,熟悉我的朋友都知道我喜欢用 WinDbg,这东西虽然很牛,但也不是万能的,也有一些场景他解决不了或者很难解决,这时候借助一些其他的工具来辅助,是一个很不错的主意。 很多朋友喜欢在项目中以记录日志的方式来监控项目的流转情况,其实 CoreCL
阅读全文
posted @ 2022-08-11 10:29 一线码农
阅读(1952)
评论(1)
推荐(6)
2022年8月2日
记一次 .NET 某工控自动化控制系统 卡死分析
摘要: 一:背景 1. 讲故事 前段时间遇到了好几起关于窗体程序的 进程加载锁 引发的 程序卡死 和 线程暴涨 问题,这种 dump 分析难度较大,主要涉及到 Windows操作系统 和 C++ 的基础知识,所以有必要简单整理和大家分享一下,上 windbg 说话。 二:WinDbg 分析 1. 主线程此时
阅读全文
posted @ 2022-08-02 17:11 一线码农
阅读(2991)
评论(0)
推荐(4)
2022年7月27日
记一次 .NET 某智慧物流 WCS系统 CPU 爆高分析
摘要: 一:背景 1. 讲故事 哈哈,再次见到物流类软件,上个月有位朋友找到我,说他的程序出现了 CPU 爆高,让我帮忙看下什么原因,由于那段时间在苦心研究 C++,分析和经验分享也就懈怠了,今天就给大家安排上。 话不多说,上 windbg 说话。 二:WinDbg 分析 1. CPU 真的爆高吗 既然说
阅读全文
posted @ 2022-07-27 15:11 一线码农
阅读(3823)
评论(4)
推荐(27)
2022年7月25日
聊聊 C++ 右值引用 和 移动构造函数
摘要: 一: 背景 最近在看 C++ 的右值引用和移动构造函数,感觉这东西一时半会还挺难理解的,可能是没踩过这方面的坑,所以没有那么大的深有体会,不管怎么说,这一篇我试着聊一下。 二: 右值引用 1. 它到底解决了什么问题? 在其他编程语言中,很少听到 右值引用 这个词,我个人感觉还是 C++ 这个 值类型
阅读全文
posted @ 2022-07-25 18:02 一线码农
阅读(804)
评论(1)
推荐(4)
2022年7月24日
聊聊 C++ 中的几种智能指针 (下)
摘要: 一:背景 上一篇我们聊到了C++ 的 auto_ptr ,有朋友说已经在 C++ 17 中被弃用了,感谢朋友提醒,今天我们来聊一下 C++ 11 中引入的几个智能指针。 unique_ptr shared_ptr weak_ptr 看看它们都怎么玩。 二:三大智能指针详解 1. unique_ptr
阅读全文
posted @ 2022-07-24 11:01 一线码农
阅读(708)
评论(0)
推荐(1)
2022年7月22日
记一次 .NET 某RFID标签管理系统 CPU 暴涨分析
摘要: 一:背景 1. 讲故事 前段时间有位朋友说他的程序 CPU 出现了暴涨现象,由于程序是买来的,所以问题就比较棘手了,那既然找到我,就想办法帮朋友找出来吧,分析下来,问题比较经典,有必要和大家做一下分享。 二:WinDbg 分析 1. CPU 真的爆高吗 一直关注这个系列的朋友应该知道,用 !tp 验
阅读全文
posted @ 2022-07-22 08:45 一线码农
阅读(1702)
评论(4)
推荐(10)
2022年7月19日
聊一聊 C# 后台GC 到底是怎么回事?
摘要: 一:背景 写这一篇的目的主要是因为.NET领域内几本关于阐述GC方面的书,都是纯理论,所以懂得人自然懂,不懂得人也没法亲自验证,这一篇我就用 windbg + 源码 让大家眼见为实。 二:为什么要引入后台GC 1. 后台GC到底解决了什么问题 解决什么问题得先说有什么问题,我们知道 阻塞版GC 有一
阅读全文
posted @ 2022-07-19 08:32 一线码农
阅读(5993)
评论(2)
推荐(11)
2022年7月18日
聊聊 C++ 中的几种智能指针 (上)
摘要: 一:背景 我们知道 C++ 是手工管理内存的分配和释放,对应的操作符就是 new/delete 和 new[] / delete[], 这给了程序员极大的自由度也给了我们极高的门槛,弄不好就得内存泄露,比如下面的代码: void test() { int* i = new int(10); *i =
阅读全文
posted @ 2022-07-18 09:06 一线码农
阅读(875)
评论(0)
推荐(2)
2022年7月15日
聊聊 C++ 中的四种类型转换符
摘要: 一:背景 在玩 C 的时候,经常会用 void* 来指向一段内存地址开端,然后再将其强转成尺度更小的 char* 或 int* 来丈量一段内存,参考如下代码: int main() { void* ptr = malloc(sizeof(int) * 10); int* int_ptr = (int
阅读全文
posted @ 2022-07-15 10:46 一线码农
阅读(1013)
评论(0)
推荐(4)
上一页
1
···
14
15
16
17
18
19
20
21
22
···
46
下一页
公告