从the pickaxe:如果我要自己释放内存,我应该使用ALLOCA_N吗?
有时您可能需要在扩展塔牛逼分配内存不会 用于对象存储,或许你有一个布隆过滤 ,图像,或一个巨大的位图红宝石 没有直接使用的一大堆小结构。要正确使用垃圾回收器, 您应该使用以下内存分配例程。这些例程比standard malloc函数做了更多的工作。 例如,如果ALLOC_N确定它不能分配所需数量的内存,它将调用垃圾回收器来尝试 回收一些空间。如果不能将提高一个NoMemError或者 所请求的内存量是无效的
但在一个给定的功能,我确切地知道何时释放内存。在这种情况下,我应该仍然使用ALLOC_N
来分配内存吗?
有没有合法的情况下,我应该自己释放内存,或者最好总是使用ALLOC_N
而不关心它?
好的博客,解释C扩展:http://blog.aeolusproject.org/category/ruby/page/2/ – thomthom 2013-05-09 09:56:25
较新的功能可能是使用'ruby_xfree'。 – thomthom 2014-02-06 17:35:03