Pythonのデバッグは、プロセスとスレッドを表示して、メモリリークの問題は、死にリンクされています

1、Pythonのデバッグツールは、このプロセスでは、Pythonのコマンドラインを開き、pyrasite Pythonのプロセスに取り付けることができます。そして、この内のコードを実行します。

(この問題のために死にリンクすることは、通常のマルチプロセスによるものであり、マルチプロセス、シングルスレッドのプロセスが実行されて作成するためにフォークを使用してプロセスロックアウトされ、フォークは、それがメモリにのみコピーする場合は、マルチスレッド化のミックスは、複数のスレッドを引き起こしました別のスレッドによって獲得されるロックがある場合は、現在の情報については、我々は、このスレッドのプロセスをフォークだけロックされるロック状態に現在ある、子プロセスは、再利用には、このロックをリードします時間がデッドロックにつながります。)

2は、死のpythonのプロセスに関連する問題のために、我々は彼らが位置で立ち往生見るためにすべてのスレッドを処理する必要があります。

私たちはこのプロセスに入ったとき、私たちは、プロセスのスタックフレームを表示するには、次のコードを実行することができます。

インポートSYS
 用のスレッドID、スタックsys._current_frame()項目():
     プリント(スレッドID、スタック)

図3に示すように、メモリリークの問題のために、我々は、Pythonコードによって引き起こされるメモリリークのためにメモリリークを表示することobjgraph使用することができ、我々は簡単に参照関係がオブジェクトをリークした見ることができます。

しかし、Cコードによるリークのために、我々は通常、唯一のオブジェクト型を参照し、オブジェクト参照関係のリークを見ることができません。だから、また、ステップバイステップを除外。

おすすめ

転載: www.cnblogs.com/lycsdhr/p/11831788.html