什么是垃圾回收开销?

时间:2018-12-22 17:15:29

标签: python garbage-collection subprocess sys

当我遇到两个问题时,我正在经历Doug Hellman's PYMOTW for the subprocess module。代码在下面。

# subprocess_run_output.py
import subprocess

completed = subprocess.run(
    ['ls', '-1'],
    stdout=subprocess.PIPE,
)
print('returncode:', completed.returncode)
print('Have {} bytes in stdout:\n{}'.format(
    len(completed.stdout),
    completed.stdout.decode('utf-8'))
)

在他的subprocess_run_output.py代码中,他使用len而不是sys.getsizeof来知道stdin是多少个字节。我认为这是因为completed.stdout对象不仅具有字符串,而且sys.getsizeof返回的字符串更多,但是len将给出字符串的实际长度,以字节为单位,如{{3 }}和question 1。如果我错了,请纠正我。

在研究过程中,我遇到了question 2中Martin的回答,听起来就像文档一样。 question 1说:

  

getsizeof()调用对象的 sizeof 方法并添加一个   如果对象是由对象管理的,则额外的垃圾收集器开销   垃圾收集器。

我的另一个问题是,这些额外的垃圾收集开销究竟是什么?开销会占用更多时间吗?这是额外的任务吗?多余的内存?还是所有东西?为什么要附加? “附加”和“开销”难道不是意味着更多的东西了吗?我不太了解C,因此无法解读此documentation的答案。

0 个答案:

没有答案