自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 CoreCLR 桩(Stub)的触发(2)

上一篇文章中描述了CLR中是如何通过precode来触发JIT的编译,这篇文章接着说JIT将IL代码编译机器码之后需要进行什么操作。这两篇文章说了CoreCLR中调用函数触发JIT编译以及编译之后的流程,通过这种方式来实现懒编译,即如果一个函数在程序里面不被调用,则不会被编译。若有错误请指正,有问题欢迎指出。

2024-10-14 21:57:58 904 1

原创 CoreCLR 虚函数调用源码

本文讲一下CoreCLR中虚函数的存储方式, 以及如何调用一个虚函数,推荐先看BoTR中关于MethodDesc的描述,对MethodTable的结构有一个了解。需要注意的是本文所描述的源码是CoreCLR8.0.1版本。与CLR2.0的虚函数表结构有较大的差别。

2024-10-13 01:47:24 547

原创 CoreCLR 桩(Stub)的触发(1)

本篇文章主要描述CoreCLR中是如何触发JIT的编译,已经编译之后的流程。注意,这篇文章不讲述JIT的编译过程,我们只需知道JIT输入的是IL代码,输出机器码就够了。

2024-10-01 22:41:41 662

原创 CoreCLR 分配小对象内存

在这篇文章中,描述了清扫(sweep)阶段如何回收未存活对象所占用的内存,这篇文章着重描述如何分配创建一个小对象(small object, 下文都叫小对象)所需要的内存,利用清扫阶段回收的内存。

2024-09-26 22:36:47 685

原创 CoreCLR Sweep阶段源码分析

Sweep(清扫,下文都叫这个名字)阶段发生在Plan Phase(计划)阶段之后,其主要作用就是将未被标记存活的物体所占的内存回收起来,并创建自由列表。如果空间足够大可以作为之后分配内存使用。此次分析代码所使用的CoreCLR版本为 8.0。

2024-09-23 22:04:27 920

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除