首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Python中的默认gc生成阈值设置为(700、10、10)

为什么Python中的默认gc生成阈值设置为(700、10、10)
EN

Stack Overflow用户
提问于 2017-09-25 07:28:58
回答 1查看 1.5K关注 0票数 1

为什么在Python中默认的GC生成阈值设置为(700、10、10);而后两个数字10、10却如此小?

这么低的门槛会导致更多的收藏吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-25 07:38:32

阈值是相对于上一代的乘数。来自文档

为了决定何时运行,收集器会跟踪自上次集合以来的number对象分配和释放位置。当分配数减去释放位置的数量超过threshold0时,集合将启动。最初只检查第一代0。如果自第二代0 被检测以来,第一代和第二代threshold1 1 被检测的次数超过了 1 次数,那么对第一代1也进行了检测。类似地,在收集生成threshold2 2**.**之前, 控制代的集合数。

大胆强调我的。

因此,只有当第0代运行了10次时,第1代才能运行。由于第0代只运行每700个周期(分配增量-去分配)周期,这意味着第1代运行每10 *700个== 7.000周期。第二代每10 * 10 * 700 == 70.000周期运行一次。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46399738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档