叫我安不理

12 2024 档案

.NET Core 类型系统(Types System)底层原理浅谈
摘要:C#源码到汇编的过程 在类型系统之前,我们先来了解一下C#的源码是如何一步一步被编译成机器码的 C#源码被Roslyn编译器编译成DLL DLL中包含了MetaData与IL Code 先由加载器根据MetaData构建出类型系统的数据结构 再由JIT编译器根据IL Code,懒加载式的生成汇编等 阅读全文

posted @ 2024-12-24 12:14 叫我安不理 阅读(324) 评论(0) 推荐(12) 编辑

.NET Core 异常(Exception)底层原理浅谈
摘要:中断与异常模型图 内中断 内中断是由 CPU 内部事件引起的中断,通常是在程序执行过程中由于 CPU 自身检测到某些异常情况而产生的。例如,当执行除法运算时除数为零,或者访问了不存在的内存地址,CPU 就会产生内中断。 硬件异常 CPU内部产生的异常事件 故障Fault 故障是在指令执行过程中检测到 阅读全文

posted @ 2024-12-17 17:34 叫我安不理 阅读(805) 评论(4) 推荐(14) 编辑

.NET Core 堆结构(Heap)底层原理浅谈
摘要:.Net托管堆布局 加载堆 主要是供CLR内部使用,作为承载程序的元数据。 HighFrequencyHeap 存放CLR高频使用的内部数据,比如MethodTable,MethodDesc. 通过is判断类型之间的继承关系,调用接口的方法和虚方法,都需要访问MethodTable LowFrequ 阅读全文

posted @ 2024-12-11 15:20 叫我安不理 阅读(1361) 评论(1) 推荐(22) 编辑

.NET Core 锁(Lock)底层原理浅谈
摘要:CPU原子操作 原子操作,指一段逻辑要么全部成功,要么全部失败。概念上类似数据库事物(Transaction). CPU能够保证单条汇编的原子性,但不保证多条汇编的原子性 那么在这种情况下,那么CPU如何保证原子性呢?CPU本身也有锁机制,从而实现原子操作 眼见为实 int location = 1 阅读全文

posted @ 2024-12-05 17:45 叫我安不理 阅读(2365) 评论(11) 推荐(25) 编辑

导航