私はArchive :: Tar :: Streamedを使用して、非常に小さな小さなソースコードファイルといくつかのjarを含む4GBディレクトリをアーカイブします。私は4GBのRAMとArchive :: Tar :: Streamedを使用するシステムを使用しています。なぜなら、私のディレクトリ全体をメモリに保存したくないからです。 File :: Findを使用してDFS形式でディレクトリからファイルを1つずつ読み込み、Archive :: Tar :: Streamedのaddメソッドを使用してtarファイルに書き込みます。ある時点で、メモリ内に1つのファイルしか存在しません。それでも、perlプロセスの%MEMが徐々に増加しています。それは20%まで上昇した。私のディレクトリには800MBのファイルがありません。私はここに2つの質問があります 1)なぜ%MEMは徐々に増えていますか? 2)なぜ20%まで上がったのですか?それはArchive :: Tarが内容をtarファイルに書き込んだ後でメモリを解放していないからですか?Archive :: Tar:Streamedを使用していても%MEMが徐々に増加しているのはなぜですか?
3
A
答えて
2
ストリーム指向の方法でデータを処理すると、VSZメモリのエンベロープが大きくならず、アプリケーションの種類によって通常は安定するRES(%MEM)のmoresoは正常ではありません。
したがって、データへの相互参照が(たとえばハッシュで)保持されているか、または循環参照が生成されている可能性は低いと思われます。
このポスト"are there any tools for finding memory leaks in my perl program"を参照して、どの変数(使用しているコードまたは使用しているモジュール内の変数)をトレースしてメモリエンベロープを拡大するか、相互参照を維持してください。
関連する問題
- 1. iPhone:タッチを使用しているアプリケーションのメモリ使用量が徐々に増加しています
- 2. テキストデータが徐々に増加している場合は、doc2vecを使用できますか?
- 3. ダイナミックデータを使用しているときに、ポストバック間でビューステートが増加するのはなぜですか?
- 4. スプライトキットを使用してSKSpriteNodeの画像を徐々にぼかす方法は?
- 5. 'insert'関数がMySQLdbを使用して行を追加していないのはなぜですか?
- 6. SQL Server:nopの更新が徐々に遅くなるのはなぜですか?
- 7. シングルトンパターンを使用していないのはなぜですか?
- 8. メッセージダイジェストのようなものですが、ファイルが徐々に記述されています
- 9. なぜ、AutoFieldの値を明示的に設定してもテーブルのシーケンスが増えないのですか? PostgreSQLバックエンドを使用してDjangoの1.8.11に
- 10. なぜログプリントモジュールがinspect.stackを使用しているのですか?
- 11. なぜ誰もlatin1を使用していますか?
- 12. コメントフォームにBBCodeは使用してもHTMLを使用しないのはなぜですか?
- 13. プログレッシブエンハンスメント手法を使用して徐々にページを読み込む方法を教えてください。
- 14. 進捗バーが正しく増加しないのはなぜですか?
- 15. カウンターがセレンを使用して増加しているかどうかを確認する方法
- 16. サブスクリプションがMeteor.user()にデータを追加していないのはなぜですか?
- 17. Archive :: Zipを使用してメンバーがテキストファイルであるかどうかを確認してください
- 18. UIPresentationFormSheetを使用して、私のビューがキーボードの上に移動していないのはなぜですか?
- 19. なぜNSLockを使用していないのですか?
- 20. CoreGraphicsを使用して徐々にエッジを変更して線を描画するにはどうすればよいですか?
- 21. jqueryスクリプトでIDを追加して使用しても機能しない
- 22. なぜ人々はウェブサイトでSSLを使用している選択的なページを保護しますか?
- 23. Javascriptを使用してDOMに追加するリンクがクリックできないのはなぜですか?
- 24. MVCがError.aspxを使用していないのはなぜですか?
- 25. SwingUtilities.invokeLaterを使用してもGUIが停止するのはなぜですか?
- 26. このプログラムのメモリフットプリントが増加しないのはなぜですか?
- 27. NSRangeに「==」を追加しても、XCTAssertEqualが引数としてNSRangeを使用しないのはなぜですか?
- 28. 私のiPhoneアプリは "iOS app archive"ではなく "Mac App Archive"としてアーカイブされています
- 29. なぜGCCはansiとペダンティックフラグがあってもC++でのround()の使用を許可していますか?
- 30. Android:WifiLockを使用していてもWi-Fiがオフになっています