c# CLR核心机制-垃圾回收
- GLR的背景
- c#进程堆,线程栈的,值类型和引用类型的区别
- 内存的分配和收集问题就产生了GC
- 回收什么样的对象,回收流程,回收算法,和回收策略
阅读指引:CLR核心机制就是垃圾回收, 讲到进程推和线程栈,是因为gc是针对于进程堆来回收,线程栈是用完全部回收的
- GLR的背景
CLR是.net fromwork
core CLR是全新一套的core CLRE为了跨平台 核心都是去实现GC和JIT
2.c#进程堆,线程栈的,值类型和引用类型的区别
从下面可以得出引用类型都是在堆里面的,为什么,因为线程栈,是线程随时可能被回收,如果引用类型放在栈里面,被回收了, 就等于一本字典没有索引页去找里面的内容
值类型和引用类型的区别
for循环里面new对象和外面new对象的区别
如果一个对象实例被声明在循环内部,那么每次执行循环体时都会为对象重新分配内存并初始化对象实例。初始化(实例化)过程并不会占用过多的时间,但是内存分配会。在某种情况下,你可能无法跑到循环外部去创建对象实例。不过,如果可能的话,重置并重用对象应该是更好的选择。
3内存的分配和收集问题就产生了GC
1.内存分配Allocator
2.内存收集Collector
非托管资源 如ado.net的链接,读写文件,为什么有的时候非托管资源没被包裹在using里面也会被释放,因为c#封装好了,但是如果遇到并发问题这里是会卡主的
4.回收什么样的对象,回收流程,回收算法,和回收策略
#对象越老,生成越长,相当于能逃过垃圾的追杀,那么久更容易逃过第二次
4..net core CLR变化
本文来自博客园,作者:12不懂3,转载请注明原文链接:https://www.cnblogs.com/LZXX/p/13956991.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2017-11-11 JS 判断checkbox 是否选中