【发布时间】:2011-12-03 14:13:52
【问题描述】:
我想知道是否可以通过在每个作用域的结尾?
明显的问题是,这在每个范围结束时都需要一些时间,但我想知道在当前 CPU 中的所有处理能力和多核情况下,这是否可行。此类语言是否已经存在?
我还想知道,智能指针是唯一可以使用的指针的 C++ 变体是否正是这样一种语言(或者我是否遗漏了一些问题?)。
编辑: 经过更多的研究,显然是这样的:http://en.wikipedia.org/wiki/Reference_counting 我想知道为什么这不是更受欢迎。那里列出的缺点似乎并不严重,根据我的说法,开销应该那么大。一种(非解释,从头开始正确编写)具有 C 系列语法和引用计数的语言对我来说似乎是个好主意。
【问题讨论】:
-
引用计数的问题是循环引用:如果一个父节点有一个子节点列表并且每个子节点都知道他的父节点,那么整个树将永远不会被释放。
-
引用计数是一种实现垃圾回收系统的方法。您是在询问不允许任何动态分配的系统,还是询问具有不同于标记和扫描算法的动态分配的系统?
-
另外,执行内存管理策略最好留给策略决策。像 C 和 C++ 这样的语言可以很好地支持引用计数或其他动态内存管理方案,并且当您想按照自己的方式做事时它们不会妨碍您。如果您使用了强制执行这些策略的语言,那么您迟早需要在某些项目中绕过它们。那么你的语言不能满足你的需求。如果您正在寻找强制执行这些内容,请参阅我的帖子。
标签: pointers memory garbage-collection