1. ホーム
  2. python

[解決済み] Pythonガベージコレクタのドキュメント [終了しました]。

2022-06-25 20:42:19

質問

Pythonのガベージコレクションがどのように動作するのか、詳しく説明されているドキュメントを探しています。

私は、どのステップで何が行われるかに興味があります。これらの3つのコレクションにはどのようなオブジェクトがあるのでしょうか?どのような種類のオブジェクトが各ステップで削除されますか?参照サイクルを見つけるためにどのようなアルゴリズムが使用されていますか?

背景 私は、少量の時間で終了する必要があるいくつかの検索を実装しています。ガベージコレクタが最も古い世代の収集を開始するとき、それは他のケースよりも"much"遅いです。検索のために意図されたよりも多くの時間がかかりました。私は、最も古い世代を収集するタイミングと、それにかかる時間を予測する方法を探しています。

最も古い世代を収集するタイミングを予測するのは簡単です。 get_count()get_threshold() . これもまた set_threshold() . しかし、私は、この問題を解決するために collect() を無理矢理作るのがいいのか、それとも予定された回収を待つのがいいのか、判断が難しいところです。

どのように解決するのですか?

Pythonがどのようにガベージコレクションを行うかについての決定的なリソースは(ソースコードそのもの以外に)ありませんが、これらの3つのリンクはかなり良いアイデアを与えてくれるはずです。

更新情報

ソースは実際にかなり役に立ちます。C言語をどれだけ読めるかによりますが、コメントは実際にとても役に立ちます。をスキップして collect() 機能 であり、コメントでは(非常に専門的な用語ではありますが)そのプロセスがよく説明されています。