会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
叫我安不理
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
下一页
2025年3月5日
重生之数据结构与算法----哈希表
摘要: 简介 hash的基本原理,可以理解为一个加强版的数组。为什么这么说呢,数组通过index来实现随机访问Log(1),而hash的key也是类似,把key理解为index,本质上还是一个基于数组的随机访问。 那么问题来了,如何把hash的key转换成数组的index呢? hash函数如何实现 hash
阅读全文
posted @ 2025-03-05 14:42 叫我安不理
阅读(504)
评论(0)
推荐(2)
2025年3月4日
重生之数据结构与算法----队列&栈
摘要: 简介 上文说到,数据结构只有两种。其它的数据结构都是它的整花活。 栈 栈只能在表的一端(称为栈顶)进行插入和删除操作,遵循 “后进先出”(Last In First Out,LIFO)的原则。就像生活中的一摞盘子,最后放上去的盘子会最先被拿走 队列 它只允许在表的一端进行插入操作(队尾),在另一端进
阅读全文
posted @ 2025-03-04 13:15 叫我安不理
阅读(418)
评论(0)
推荐(2)
2025年3月3日
重生之数据结构与算法----数组&链表
摘要: 简介 数据结构的本质,只有两种结构,数组与链表。其它的都是它的衍生与组合 算法的本质就是穷举。 数组 数组可以分为两大类,静态数组与动态数组。 静态数组的本质是一段连续的内存,因为是连续的,所以我们可以采用偏移量的方式来对元素实现快速访问。 而动态数组则是对静态数组的封装,使得更加方便操作元素。有了
阅读全文
posted @ 2025-03-03 13:31 叫我安不理
阅读(579)
评论(1)
推荐(2)
2025年2月20日
.NET Core 托管堆内存泄露/CPU异常的常见思路
摘要: 常见的思路 内存泄露 托管内存暴涨大多数原因都是因为对象被GC Root(stack,gchandle,finalizequeue)持有,所以一直无法释放,所以观察的重点都在对象的可疑GC Root 上 CPU高 CPU占用率高是由线程抬起来,因此观察线程当时在做什么,调用堆栈上的方法执行了多久是重
阅读全文
posted @ 2025-02-20 14:51 叫我安不理
阅读(1131)
评论(10)
推荐(10)
2025年2月17日
.NET Core 常用集合的几个坑
摘要: C#中的常见集合 注意,箭头线不代表继承关系,只代表功能上的加强,如有错误,欢迎指出。 泛型集合时间复杂度 集合类型 添加 删除 查找 访问(索引/键) 遍历 备注 List<T> O(1)(均摊) O(n) O(n) O(1) O(n) 动态数组;删除/插入中间元素需移动数据 SortedList
阅读全文
posted @ 2025-02-17 17:12 叫我安不理
阅读(894)
评论(0)
推荐(7)
2025年2月11日
.NET Core 内存结构体系底层原理浅谈
摘要: 物理内存与虚拟内存 物理内存(Physical Memory) 定义:物理内存是计算机硬件中的实际RAM(如DDR5内存条),直接通过总线与CPU连接,用于临时存储运行中的程序和数据。 虚拟内存(Virtual Memory) 定义:由操作系统管理的抽象内存层,通过结合物理内存和磁盘空间(如页面文件
阅读全文
posted @ 2025-02-11 17:40 叫我安不理
阅读(1454)
评论(2)
推荐(17)
2025年2月6日
.NET Core GC模式(gc mode)底层原理浅谈
摘要: 简介 CLR的GC模式与JVM的GC模式理念不同,相对JVM的各种小参显得比较简陋,CLR的理念是约定优于配置,并根据程序类型来分提供了几个默认的选项给大家选择。 CS程序默认使用的工作站模式(WorkStation Mode) BS程序默认使用的服务器模式(Server Mode) 不同的模式,堆
阅读全文
posted @ 2025-02-06 10:38 叫我安不理
阅读(768)
评论(4)
推荐(4)
2025年1月25日
.NET Core GC压缩(compact_phase)底层原理浅谈
摘要: 简介 终于来到了GC的最后一个步骤,在此之间,大量预备工作已经完成。万事俱备,只欠东风 清除 如果GC决定不压缩,它将仅执行清除操作。清除操作非常简单,把所有不可到达对象(gap),转换成Free。也就是转换成空闲内存空间。 由于所有的繁重计算任务在plan_phase阶段均已完成,所以步骤比较简单
阅读全文
posted @ 2025-01-25 10:16 叫我安不理
阅读(693)
评论(2)
推荐(5)
2025年1月16日
.NET Core GC计划阶段(plan_phase)底层原理浅谈
摘要: 简介 在mark_phase阶段之后,所有对象都被标记为有用/垃圾对象。此时,垃圾回收器已经拥有启动垃圾回收的所有前置准备工作。 这个时候,垃圾回收期应该执行"清除回收"还是"压缩回收"呢?只有做一下试验才能得出理论支撑。 模拟压缩 这里会有一个悖论,如果你要知道压缩是否划得来,那你就得先压缩后查看
阅读全文
posted @ 2025-01-16 15:15 叫我安不理
阅读(829)
评论(5)
推荐(7)
2025年1月13日
.NET Core GC标记阶段(mark_phase)底层原理浅谈
摘要: 简介 C# 采用基于代的回收机制,并使用了更复杂的 链式跟踪算法 来识别对象是否为垃圾。 GC触发的原因 截至到.NET 8,GC触发的原因有18种 enum gc_reason { reason_alloc_soh = 0,//小对象堆,快速分配预算不足 reason_induced = 1,//
阅读全文
posted @ 2025-01-13 12:23 叫我安不理
阅读(635)
评论(0)
推荐(5)
上一页
1
2
3
4
5
6
7
下一页
公告