テスト::弱体

解放されたメモリオブジェクトが確かに、解放されたテスト
今すぐダウンロード

テスト::弱体 ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Perl Artistic License
  • 価格:
  • FREE
  • 出版社名:
  • Jeffrey Kegler
  • 出版社のWebサイト:
  • http://search.cpan.org/jkegl/

テスト::弱体 タグ


テスト::弱体 説明

解放されたメモリオブジェクトが確かに、解放されたテスト Perlデータ構造が破壊されたときにメモリリークが発生しますが、その構造の内容の一部は解放されません。リークメモリは無駄なオーバーヘッドです。リークはシステム性能に大きな影響を与える可能性があります。また、メモリの不足のためにアプリケーションが異常終了する可能性があります.Perlは、循環参照はメモリリークの一般的な原因です。 Perlでは循環基準が許可されていますが、プログラマが漏れを防ぐための特定の措置を講じる限り、循環参照を含むデータ構造はメモリをリークします。予防策は、構造を弱めることや構造が破壊される直前に参照サイクルを破るように配置することを含みます。円形の参照を使用しているときは、メモリリークを防ぐための方式を誤動またはずらすことが簡単です。この種の間違いは、テストSuite.test :: FreeDのPerlデータを簡単に検出できるPerlモジュールです。 test ::弱いデータを調べることができます。デフォルトでは、Test :: Weakenは、参照に従って、およびその下にあるオブジェクトへの接続変数を次のように調べることによって、データ構造の内容を決定します。 Test ::弱い、これは無制限のDepth.test.test ::弱いループに入らずに円形の参照に対処することができます。 Test ::弱いPerlデータオブジェクトを2回アクセスしません。 DATA :: DUMPERを使用してください。 Math :: Bigintを使用してください。 Math :: BigFloatを使用してください。鯉を使う。英語QW(-no_match_vars)を使用してください。 My $ good_test = sub {My $ OBJ1 = Math :: BigInt-> New('42 '); My $ OBJ2 = Math :: BigFloat-> New( '7.11'); ; ;; if(漏れ($ good_test)){"テスト1 n"またはcarp :: croak( "stdoutに印刷できません:$ errno"); erse {印刷 "テスト1からのメモリリークがありました! n"またはcarp :: croak( "stdoutに印刷できません:$ errno"); my $ bad_test = sub {My $ Array = ; @ {$ array}、$ array; push; $ array; ;;私の$ bad_destructor = sub {'私は無駄な'}。 My $ Tester = Test :: Weaken :: Leaks({コンストラクタ=> $ BAD_TEST、Destructor => $ BAD_DESTRUCTOR、})。 ($ TESTER){My $ unfreed_proberefs = $ TESTER-> unfreed_proberefs(); My $ unfreed_count = @ {$ unfreed_proberefs}}; PRINTF "テスト2:%Dの%Dオリジナル参照の%Dは N"、$ tester-> unfreed_count()、$ tester-> probe_count()またはcarp :: croak( "stdoutに印刷できません:$ errno") ;印刷 "これらは未実行オブジェクトへのプローブ参照: n"またはcarp :: croak( "stdoutに印刷できません:$ errno"); My $ IXの場合(0 .. $#{$ unfreed_proberefs}){印刷データ:: Dumper-> Dump(]、)またはCarp :: Croak( "stdoutに印刷できません:$ errno"); } } 要件: ・Perl


テスト::弱体 関連ソフトウェア