会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
14
15
16
17
18
19
20
21
22
···
44
下一页
2022年6月4日
C# 类继承中的私有字段都去了哪里?
摘要: 最近在看 C++ 类继承中的字段内存布局,我就很好奇 C# 中的继承链那些 private 字段都哪里去了? 在内存中是如何布局的,毕竟在子类中是无法访问的。 一:举例说明 为了方便讲述,先上一个例子: internal class Program { static void Main(string
阅读全文
posted @ 2022-06-04 09:05 一线码农
阅读(1000)
评论(3)
推荐(5)
2022年6月1日
聊聊 C# 中的多态底层 (虚方法调用) 是怎么玩的
摘要: 最近在看 C++ 的虚方法调用实现原理,大概就是说在 class 的首位置存放着一个指向 vtable array 指针数组 的指针,而 vtable array 中的每一个指针元素指向的就是各自的 虚方法,实现方式很有意思,哈哈,现在我很好奇 C# 中如何实现的。 一: C# 中的多态玩法 1.
阅读全文
posted @ 2022-06-01 11:42 一线码农
阅读(3559)
评论(1)
推荐(15)
2022年5月13日
windbg的时间旅行实现对 C# 程序的终极调试
摘要: 一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想。 很开心的是 windbg preview 版本中已经实现了,叫做 时间旅行调试 TTD,相比传统的 静态分析 不知道好多少倍。 为了能提起大家兴趣,我
阅读全文
posted @ 2022-05-13 09:51 一线码农
阅读(1362)
评论(0)
推荐(11)
2022年5月11日
过早的给方法中 引用对象 设为 null 可被 GC提前回收吗?
摘要: 经常在代码中看到有人将 null 赋值给引用类型,来达到让 GC 提前回收的目的,这样做真的有用吗?今天我们就来研究一下。 为了方便讲解,来一段测试代码,提前将 test1=null ,然后调用 GC.Collect() 看看是否能提前回收。 平台采用: .net5 public class Pro
阅读全文
posted @ 2022-05-11 13:55 一线码农
阅读(828)
评论(1)
推荐(7)
2022年4月28日
C#语法糖系列 —— 第三篇:聊聊闭包的底层玩法
摘要: 有朋友好奇为什么将 闭包 归于语法糖,这里简单声明下,C# 中的所有闭包最终都会归结于 类 和 方法,为什么这么说,因为 C# 的基因就已经决定了,如果大家了解 CLR 的话应该知道, C#中的类最终都会用 MethodTable 来承载,方法都会用 MethodDesc 来承载, 所以不管你怎么玩
阅读全文
posted @ 2022-04-28 09:21 一线码农
阅读(1980)
评论(0)
推荐(10)
2022年4月25日
C#语法糖系列 —— 第二篇:聊聊 ref,in 修饰符底层玩法
摘要: 自从 C# 7.3 放开 ref 之后,这玩法就太花哨了,也让 C# 这门语言变得越来越多范式,越来越重,这篇我们就来聊聊 ref,本质上来说 ref 的放开就是把 C/C++ 指针的那一套又拿回来了,而且还封装成一套自己的玩法,下面一一解读下。 一:方法参数上的 ref 我想设计者的初心把 ref
阅读全文
posted @ 2022-04-25 09:14 一线码农
阅读(3127)
评论(1)
推荐(9)
2022年4月19日
C#语法糖系列 —— 第一篇:聊聊 params 参数底层玩法
摘要: 首先说说为什么要写这个系列,大概有两点原因。 这种文章阅读量确实高... 对 IL 和 汇编代码 的学习巩固 所以就决定写一下这个系列,如果大家能从中有所收获,那就更好啦! 一:params 应用层玩法 首先上一段 测试代码。 class Program { static void Main(str
阅读全文
posted @ 2022-04-19 13:10 一线码农
阅读(4132)
评论(3)
推荐(10)
2022年4月1日
一个高频问题:异步操作会创建线程吗?
摘要: 这个问题在微信上被别人问过好多次,想来想去觉得有必要统一解答下,先说下我的答案:可能会,也有可能不会。 要想寻找答案,需要从 异步处理 的底层框架说起。 一:异步底层是什么 异步 从设计层面上来说它就是一个 发布订阅者 模式,毕竟它的底层用到了 端口完成队列,可以从 IO完成端口内核对象 所提供的三
阅读全文
posted @ 2022-04-01 10:08 一线码农
阅读(4488)
评论(8)
推荐(23)
2022年2月23日
记一次 .NET 某供应链WEB网站 CPU 爆高事故分析
摘要: 一:背景 1. 讲故事 年前有位朋友加微信求助,说他的程序出现了偶发性CPU爆高,寻求如何解决,截图如下: 我建议朋友用 procdump 在 cpu 高的时候连抓两个dump,这样分析起来比较稳健,朋友也如期的成功抓到,接下来就用 windbg 一起来分析下吧。 二:Windbg 分析 1. 查看
阅读全文
posted @ 2022-02-23 16:21 一线码农
阅读(4186)
评论(7)
推荐(19)
2022年1月28日
记一次 .NET 某智能交通后台服务 CPU爆高分析
摘要: 一:背景 1. 讲故事 前天有位朋友加微信求助他的程序出现了CPU爆高的问题,开局就是一个红包,把我吓懵了! 🤣🤣🤣 由于是南方小年,我在老家张罗处理起来不方便,没有第一时间帮他处理,朋友在第二天上午已经找出问题了,反馈说是一个 while(true) 导致的,这就有点意思了,在我分析的众多
阅读全文
posted @ 2022-01-28 16:47 一线码农
阅读(2627)
评论(11)
推荐(4)
2022年1月17日
记一次 .NET 某药品仓储管理系统 卡死分析
摘要: 一:背景 1. 讲故事 这个月初,有位朋友wx上找到我,说他的api过一段时间后,就会出现只有请求,没有响应的情况,截图如下: 从朋友的描述中看样子程序是被什么东西卡住了,这种卡死的问题解决起来相对简单,接下来我就用 windbg 给大家分析一下。 二:Windbg 分析 1. Request 请求
阅读全文
posted @ 2022-01-17 10:05 一线码农
阅读(2378)
评论(6)
推荐(6)
2022年1月12日
记一次 .NET 某消防物联网 后台服务 内存泄漏分析
摘要: 一:背景 1. 讲故事 去年十月份有位朋友从微信找到我,说他的程序内存要炸掉了。。。截图如下: 时间有点久,图片都被清理了,不过有点讽刺的是,自己的程序本身就是做监控的,结果自己出了问题,太尴尬了🤣🤣🤣 二:Windbg 分析 1. 托管还是非托管 这个是甄别内存问题的第一步,通过 !addr
阅读全文
posted @ 2022-01-12 10:25 一线码农
阅读(4974)
评论(15)
推荐(21)
2022年1月10日
记一次 WinDbg 分析 .NET 某工厂MES系统 内存泄漏分析
摘要: 一:背景 1. 讲故事 上个月有位朋友加微信求助,说他的程序跑着跑着就内存爆掉了,寻求如何解决,截图如下: 从聊天内容看,这位朋友压力还是蛮大的,话说这貌似是我分析的第三个 MES 系统了,看样子 .NET 在传统工厂是巨无霸的存在哈。。。 话不多说,一起用 Windbg 一探究竟吧。 二:Wind
阅读全文
posted @ 2022-01-10 09:38 一线码农
阅读(3682)
评论(13)
推荐(15)
2021年12月20日
记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析
摘要: 一:背景 1. 讲故事 这个月初,一位朋友加微信求助他的程序出现了 CPU 偶发性爆高,希望能有偿解决一下。 从描述看,这个问题应该困扰了很久,还是医院的朋友给力,开门就是 100块 红包 🤣🤣🤣,那既然是偶发性爆高,人工不行,还得用 procdump 自动抓,用 procdump -ma -
阅读全文
posted @ 2021-12-20 09:53 一线码农
阅读(7240)
评论(41)
推荐(37)
2021年12月10日
记一次 .NET 某妇产医院 WPF内存溢出分析
摘要: 一:背景 1. 讲故事 上个月有位朋友通过博客园的短消息找到我,说他的程序存在内存溢出情况,寻求如何解决。 要解决还得通过 windbg 分析啦。 二:Windbg 分析 1. 为什么会内存溢出 大家都知道内存溢出对应着 .NET 中的 OutOfMemoryException 异常,这种异常有可能
阅读全文
posted @ 2021-12-10 15:11 一线码农
阅读(3045)
评论(15)
推荐(9)
上一页
1
···
14
15
16
17
18
19
20
21
22
···
44
下一页
公告