- GLR的背景
- c#进程堆,线程栈的,值类型和引用类型的区别
- 内存的分配和收集问题就产生了GC
- 回收什么样的对象,回收流程,回收算法,和回收策略
阅读指引:CLR核心机制就是垃圾回收, 讲到进程推和线程栈,是因为gc是针对于进程堆来回收,线程栈是用完全部回收的
- GLR的背景
CLR是.net fromwork
core CLR是全新一套的core CLRE为了跨平台 核心都是去实现GC和JIT
2.c#进程堆,线程栈的,值类型和引用类型的区别
从下面可以得出引用类型都是在堆里面的,为什么,因为线程栈,是线程随时可能被回收,如果引用类型放在栈里面,被回收了, 就等于一本字典没有索引页去找里面的内容
值类型和引用类型的区别
3内存的分配和收集问题就产生了GC
1.内存分配Allocator
2.内存收集Collector
非托管资源 如ado.net的链接,读写文件,为什么有的时候非托管资源没被包裹在using里面也会被释放,因为c#封装好了,但是如果遇到并发问题这里是会卡主的
4.回收什么样的对象,回收流程,回收算法,和回收策略
#对象越老,生成越长,相当于能逃过垃圾的追杀,那么久更容易逃过第二次
4..net core CLR变化