会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
叫我安不理
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
下一页
2024年11月13日
.NET Core 委托(Delegate)底层原理浅谈
摘要: 简介 .NET通过委托来提供回调函数机制,与C/C++不同的是,委托确保回调是类型安全,且允许多播委托。并支持调用静态/实例方法。 简单来说,C++的函数指针有如下功能限制,委托作为C#中的上位替代,能弥补函数指针的不足。 类型不安全 函数指针可以指向一个方法定义完全不同的函数。在编译期间不检查正确
阅读全文
posted @ 2024-11-13 10:18 叫我安不理
阅读(1463)
评论(0)
推荐(16)
2024年11月7日
.NET Core 泛型(Generic)底层原理浅谈
摘要: 简介 泛型参考资料烂大街,基本资料不再赘述,比如泛型接口/委托/方法的使用,逆变与协变。 泛型好处有如下几点 代码重用 算法重用,只需要预先定义好算法,排序,搜索,交换,比较等。任何类型都可以用同一套逻辑 类型安全 编译器保证不会将int传给string 简单清晰 减少了类型转换代码 性能更强 减少
阅读全文
posted @ 2024-11-07 14:57 叫我安不理
阅读(3447)
评论(2)
推荐(34)
2024年10月30日
管中窥豹----.NET Core到.NET 8 托管堆的变迁
摘要: 简介 https://www.cnblogs.com/lmy5215006/p/18494483 在研究.NET String底层结构时,我所观察到的情况与《.NET Core底层入门》,《.NET内存管理宝典》书中描述不符。故多研究了一下。发现.NET托管堆的结构也是越来越多,越来越高性能。 //
阅读全文
posted @ 2024-10-30 16:48 叫我安不理
阅读(2684)
评论(6)
推荐(42)
2024年10月25日
几张图带你了解.NET 8中的 String
摘要: 简介 string作为一种特殊的引用类型,是迄今为止.NET程序中使用最多的类型。其本质就是unicode格式的char[] 分配在托管堆上 因此在分析dump的时候,大量的string,char[]是很常见的现象 String的内存布局 https://github.com/dotnet/runt
阅读全文
posted @ 2024-10-25 15:50 叫我安不理
阅读(1296)
评论(4)
推荐(23)
2024年10月22日
汇编语言学习笔记(二)寄存器
摘要: 简介 上文所说的总线,相对于CPU自身而言,属于外部总线。这些外部总线将CPU与外部芯片串联起来。 其内部也有类似结构(运算器/控制器/寄存器/内部总线),组成一个完整的CPU。 运算器进行计算处理 寄存器进行数据存储 控制器控制内部芯片 内部总线串联内部芯片 不同CPU,寄存器的数量与结构不尽相同
阅读全文
posted @ 2024-10-22 10:43 叫我安不理
阅读(245)
评论(0)
推荐(0)
汇编语言学习笔记(一)基础知识
摘要: 指令和数据 指令和数据是应用上的概念,在内存或磁盘上,两者没有任何区别,都是二进制信息。 如同围棋中的棋子,在棋盒里没有任何区别,在对弈的时候才有不同的意义 存储单元 计算机最小信息单位为Bit,也就是一个二进制位。8个bit组成一个Byte.通常称之为字节 1B=8Bit,1KB=1024B,1M
阅读全文
posted @ 2024-10-22 10:41 叫我安不理
阅读(219)
评论(0)
推荐(1)
2024年10月15日
一张图带你了解.NET终结(Finalize)流程 ----续
摘要: 接上文 https://www.cnblogs.com/lmy5215006/p/18456380 评论区精彩,大佬深入讨论了C#的Finalize最佳实践,感觉有必要整理下来,拓展阅读,开拓眼界。 GC类中几个非常重要的API GC.ReRegisterForFinalize 顾名思义,再次注册一
阅读全文
posted @ 2024-10-15 13:55 叫我安不理
阅读(152)
评论(0)
推荐(1)
2024年10月11日
一张图带你了解.NET终结(Finalize)流程
摘要: 简介 "终结"一般被分为确定性终结(显示清除)与非确定性终结(隐式清除) 确定性终结 提供给开发人员一个显式清理的方法,比如try-finally,using,IDisposable。 非确定性终结 提供一个注册的入口,只知道会执行,但不清楚什么时候执行。比如析构函数。 为什么需要终结机制? 首先纠
阅读全文
posted @ 2024-10-11 15:52 叫我安不理
阅读(2551)
评论(13)
推荐(21)
2024年10月8日
.NET高级调试 - 3.7对象检查
摘要: 简介 在大多数调试会话中,首先需要检查的项目就是分析应用程序的状态。在确认程序的问题是某种无效状态造成的,我们便需要分析程序是如何变成无效状态的。那么在分析过程中,需要为我们深入了解对象的各种审查方法 内存转储 内存转储非常底层,是从内存地址上观察地址上的内容,常常使用d系列命令观察 对象的“类型显
阅读全文
posted @ 2024-10-08 13:49 叫我安不理
阅读(185)
评论(0)
推荐(1)
2024年9月29日
.NET高级调试 - 3.12 sosex实用的几个命令介绍
摘要: 简介 sosex是sos的一个拓展,主要目的是将一些繁琐的排查过程脚本化,比如探测死锁,设置断点等。更加方便快捷协助我们排查问题. 比较可惜的是,在.net core中不可用,作者已经不更新了。 更多的命令可以使用!sosex.help 查看帮助 断点加强 原来的bp命令操作起来优点麻烦,还有区分j
阅读全文
posted @ 2024-09-29 17:31 叫我安不理
阅读(128)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
下一页
公告