python垃圾收集器是否保证不复制?

时间:2016-04-23 18:29:52

标签: python garbage-collection cython

我问的原因是因为可以在没有GIL的情况下在Cython中对内存视图进行操作,并且不会以某种方式标记它们不被移动。例如:

def f(double[:] z):
    cdef int i, n = len(z)
    with nogil:
        for i in prange(n):
            z[i] += 1.5

这与Java中的情况不同,在Java中,您必须获取并释放数组,以防止在外部代码中使用它们时GC移动它们。因此,要么在幕后发生一些标记或获取/释放事件,要么Python垃圾收集器永远不会移动数组,这似乎暗示垃圾收集器是非复制的。

首先,我是对的,它是非复制的吗?这是一种有保证的,有文档记录的语言功能,这意味着任何想要称自己为“python解释器”的东西都必须有一个非复制的垃圾收集器吗?

0 个答案:

没有答案