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

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

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

相关推荐
誰能久伴不乏5 分钟前
Qt C++ 解析 JSON 完全指南:从核心概念到工业级实战
c++·qt·json
郝学胜-神的一滴5 分钟前
力扣 144:二叉树前序遍历的优雅实现
java·数据结构·c++·python·算法·leetcode·职场和发展
FFZero111 分钟前
[mpv插件系统] (一) Lua 闭包与上值 — 从概念到 C API
c语言·junit·lua
枕星而眠11 分钟前
C++面向对象核心:类间关系与继承深度解析
运维·开发语言·c++·后端
秋越12 分钟前
从工程角度理解嵌入式C语言关键字
c语言·开发语言·嵌入式·嵌入式软件开发·嵌入式c语言·c语言关键字
比企谷八幡26 分钟前
数据库 Page 内部是什么样:Page Header、Slot 和 Line Pointer
数据库·c++·postgresql·数据库架构
代码地平线28 分钟前
C++ 入门篇类和对象·上篇:从本质深剖类与对象与C++基本用法
c语言·开发语言·数据结构·c++·笔记·算法
十五年专注C++开发36 分钟前
C++17之类模板实参自动推导CTAD
开发语言·c++·聚合初始化·catd
星马梦缘1 小时前
ACM笔记 学习版本
数据结构·c++·算法
syker1 小时前
AIFerric 多硬件后端完整支持方案
c语言