中的垃圾收集物业
最近两年我对 gc 很感兴趣 :D 已经在项目中用了两年。项目从 C++ 转到 C ,gc 模块的实现发生了变化,但是本质却没有变。我对 C++ 加入 gc 是非常欢迎的,这点在以前写的另一篇 blog 中已经表明过态度。 记得两年前,当有机会当面问 Bjarne Stroustrup 关于 C++ 发展的问题时,我毫不犹豫的讲出自己对 gc 的迫切期待,并希望能够以最小代价的把 gc 加入 C++ 。因为已经实现过一些 C++ 的 gc 模块,我有一些语言上的需求。当时描述了自己的想法,可惜英文实在是太差了,完全说不清楚 :( 因为没听明白我的意思,Bjarne Stroustrup 他老人家似乎也很无奈,最后只是建议中国的程序员应该参于到语言的标准化事务当中去,一直以来,C++ 标准委员会中似乎没有来至中国大陆的程序员。
既然 C++ 是你的工具,你就应该努力把自己对工具的改进需求说出来。
其实我的需求很简单,就是 C++ 中应该加入一些对数据结构中数据类型的有限描述。其实只做内存管理的话,类型信息只需要区分数据还是指针就够了。具体数据类型可以忽略。
我的想法就是像虚表一样,给每个类多加一张表,描述这个对象中指针的位置(记录一个偏移量)。由于 C++ 的对象布局比较复杂,这个工作如果不在编译器里做,会相当麻烦。有这样的信息,gc 就可以容易的遍历内存了。看那篇文章的介绍,C++ 的 gc 似乎用 gc_strict gc_relax 这样的关键字来描述一整块内存区内有没有指针,而没有更细致的精确到每个数据上。这跟已有的 C 的 gc 库 实现类似。我猜测这些是为了兼容 POD 类型设计的,对于 C++ 自己的类,应该可以更好的解决。毕竟编译器知道全部的类型信息。
除此之外,遍历堆栈依旧是个问题,但已经好多了。遍历可以用各种语法糖来实现,反正 C++ 有了 template 后,什么诡异的写法都弄的出来。
属性媲美高端命格。这么一说是不是很心动啊?要知道在游戏中好的装备是每位玩家都梦寐以求的 最后说两句 gc 的效率问题。gc 没有人肉内存管理效率高是一种普遍的误解。如果不是靠臆测,而是自己实现一个 gc 模块,然后做代码剖析的话,很容易相信 gc 可以带来更高的性能。关于 gc 和人肉内存管理之间的性能话题,以前写过太多,吵的太多,嚼着都没味道了。今天就不再写了。
英太青凝胶的成分有哪些杭州不孕不育医院治疗方法
柳州市最好的妇科医院
- 民间故事:新媳妇回娘家,见继父做荒唐事,相劝不成梦中被骗身
- 哪吒汽车与德赛西威合作升级,首款Impreza年内交付
- 辽篮夺冠郭艾伦却不开心,直播回应续约,跟朋友打篮球比联赛快乐
- 腌腊肉,放多少水合适?多加2样,腊香十足,筋道好吃,1年不发霉
- 首轮1:4出局,特雷杨场均15+6,那么湖人队球星巴特勒呢?
- 这一夏,都是电影感!快来vivo快闪店感受vivo S15系列的摄影机魅力
- 错失9:7,丙涛福威16局战平,11:5,火箭把福奎尔打得老气横秋
- 越战越勇!广州队充满自信,不顾一切4连败,依然期待完成进球
- SpaceX星链网速已高企至全球最快之一 但仍有不足
- 和同事关系日后好,也不要做这3件事,要不然会很吃亏!
- 选择比努力更极其重要?怎么发展才顺?你需要了解这7个人生极其重要选择
- 给狗狗修毛剪指甲有技巧如何把卡斯罗犬护理位置