gpt4 book ai didi

garbage-collection - 不传递内存的 pure 和 nothrow 函数是否会自动收集垃圾?

转载 作者:行者123 更新时间:2023-12-04 07:55:07 26 4
gpt4 key购买 nike

假设您在 D 中有一个 purenothrow 的函数,并且根据其返回类型和参数类型,不能传递任何新分配的内存。那么我可以将 @nogc 属性添加到这个函数吗?如果没有, future 是否有可能实现?

我的观点如下:由于该函数没有任何可见的副作用,因此可以在函数退出时确定性地释放在途中分配的所有内存。因此,GC 并不是真正需要的,因为可以避免标记和清除步骤。还是不能?

最佳答案

您总是可以尝试添加 @nogc 并进行编译。纯函数可能仍会分配内部缓冲区,即使它不返回任何缓冲区,因此垃圾收集问题与纯度问题在不同的轴上。

如果它通过 @nogc 的编译,它不会分配(因此不会收集,D GC 只会在您要求它分配时收集)而不考虑纯度。

关于garbage-collection - 不传递内存的 pure 和 nothrow 函数是否会自动收集垃圾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com