私は現在、メッセージ処理アプリケーションとして使用するpython twisted serverを開発中です。私は奇妙な問題に出くわしました。ツイストされたpythonのガベージコレクション
私はサーバにget_POSTを処理するためにmyクラスを指定し、受け取ったメッセージをさらに処理するクラスに渡します。
メッセージは、新しいメッセージが存在するたびにインスタンス化されるオブジェクトのメンバーである辞書に処理されます。しかし、(例えば)メッセージが辞書のための10個の項目を含む後に、9個の項目のみを有するメッセージが処理されると、10番目は依然として辞書内にある。
私は明示的に例えば、メッセージを処理する前に辞書をクリアすることによってこの問題を回避することができました:オブジェクトが出ていたはずなので
dが= {}
はしかし、私は困惑しています辞書がさらに処理された後に収集されたスコープとガーベジの数と、新しいメッセージごとに再インスタンス化されます。オブジェクトがインスタンスではなく、メンバーがシングルトンであるかのようにメンバーを保持しているか、メンバーが静的であるかのように動作しているようです。
通常のスコープポリシーは、ねじれたフレームワークの下では同じように動作しますか、スコープから外れるとオブジェクトがGCされるようにするために何か追加が必要ですか?
ありがとうございます!
-joe。
を通じてクラスの開始なしでもづけしなければなりません。この非常にされているだろう(特に実際にはhttp://sscce.org/の場合)あなたのアプローチを照らし出すコードを少し入れておけば簡単に質問できます。この情報を省略すると、これは「見えないプログラムに何が間違っているのか」という疑問です。 : –
Jean-Paul、ありがとうございました。私たちはこれを以下に解くことができました。クラスとインスタンススコープの変数の誤解とは関係ありませんでした。 –