C语言传统垃圾收集器的缺陷以及我的思路

传统的比如Boehm回收器,都是在malloc/realloc/free上做文章,参考这篇文章【How the Boehm Garbage Collector Works】的解释,因为C数据结构是无法预料的,内存里面并没有特殊标记,很难判断哪些是指针哪些是数据,比如BoehmGC就只能尽最大能力判断。而高级语言都是自己定义一套完整数据结构,禁止用户直接操作内存,指针和数据都精确记录,就能在理论上确保,但是对C语言来讲似乎又显得太笨重。而C++/Rust那些套路,我从来都感觉太丑陋,因为本来低级语言生态位就是完全暴露底层数据/内存结构,生搬硬造那么多概念干嘛?弄到底层完全不透明,一地鸡毛,还不如用高级语言。

所以我的想法就是找到最佳折中【一个极简鲁棒的C语言的动态数据类型扩展,取代诸如C++/Rust那些愚蠢的东西】,沿用最精确的套路,在指针上做文章,十几年的经验,Json那几个类型足够用,标记/清除算法的根指针就是C语言里创建在栈上的变量,记录它们的状态,就可以之后正确判断是否失效,叶子指针是在堆上创建的,因为数据结构固定,就能轻松递归处理。而且它本质依旧是C代码,底层结构完全暴露,也和C一样性能,因为设计简单,优化和扩展也很轻松。

相关推荐
艾莉丝努力练剑12 分钟前
【QT】环境搭建收尾:认识Qt Creator
运维·开发语言·c++·人工智能·qt·qt creator·qt5
南棱笑笑生14 分钟前
20260113给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时适配CAM3接口的OV5645
c语言·开发语言·rockchip
Larry_Yanan15 分钟前
Qt安卓开发(二)摄像头打开
android·开发语言·数据库·c++·qt·ui
HalvmånEver20 分钟前
Linux:深入剖析 System V IPC下(进程间通信九)
linux·运维·服务器·c++·system v·管道pipe
m0_7482500322 分钟前
C++ 修饰符类型
开发语言·c++
李日灐27 分钟前
C++STL:仿函数、模板(进阶) 详解!!:“伪装术”和模板特化、偏特化的深度玩法指南
开发语言·c++·后端·stl
qq_4335545436 分钟前
C++ 图论算法:二分图最大匹配
c++·算法·图论
DYS_房东的猫42 分钟前
《 C++ 零基础入门教程》第5章:智能指针与 RAII —— 让内存管理自动化
开发语言·c++·自动化
%xiao Q1 小时前
信息学奥赛一本通(部分题解)
c语言·c++·算法
w-w0w-w1 小时前
C++ list简单模拟实现
数据结构·c++