Test :: verzwakken

Test die bevrijdde geheugenobjecten waren, inderdaad bevrijd
Download nu

Test :: verzwakken Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Jeffrey Kegler
  • Uitgever website:
  • http://search.cpan.org/~jkegl/

Test :: verzwakken Tags


Test :: verzwakken Beschrijving

Test of vrijgegeven geheugen objecten waren inderdaad bevrijd Geheugenlek wanneer een Perl gegevensstructuur wordt vernietigd maar de inhoud van die structuur niet vrijgemaakt. Gelekt geheugen is een nutteloze overhead. Lekken kunnen van grote invloed zijn prestaties van het systeem. Ze kunnen ook een aanvraag ingediend om abend veroorzaken als gevolg van een gebrek aan memory.In Perl, kringverwijzingen zijn een veelvoorkomende oorzaak van geheugenlekken. Cirkelverwijzingen zijn toegestaan in Perl, maar gegevensstructuren bevattende cirkelverwijzingen zal geheugenverlies, tenzij de programmeur specifieke maatregelen neemt om lekken te voorkomen. Preventieve maatregelen omvatten verzwakking van de referenties en regelen de referentiecyclus net voor de constructie destroyed.When gebruikt kruisverwijzingen breken, is het gemakkelijk om misdesign of misimplement een schema ter voorkoming geheugenlekken. Fouten van dit type zijn moeilijk om te detecteren in een test suite.Test :: verzwakken is een Perl module die gemakkelijk detectie van unfreed Perl data mogelijk maakt. Test :: verzwakken kunt u de unfreed data, zelfs gegevens die gewoonlijk zou hebben gemaakt inaccessible.Test :: Weaken bevrijdt de test structuur te onderzoeken, dan kijkt om te zien of een van de inhoud van de structuur waren eigenlijk niet deallocated. Standaard Test :: Weaken bepaalt de inhoud van een datastructuur door het onderzoeken arrays en hashes door volgende referenties, en door het volgen gebonden variabelen onderliggende object. Test :: verzwakken doet dit recursief om onbeperkt depth.Test :: verzwakken kunnen omgaan met kringverwijzingen zonder in te gaan op oneindige lussen. Test :: verzwakken zal niet een bezoek aan de dezelfde Perl data-object twice.SYNOPSIS gebruik Test :: verzwakken qw (lekken); Gebruik gegevens :: Dumper; Gebruik Math :: BIGINT; Gebruik Math :: BigFloat; Gebruik Carp; gebruik Engels qw (-no_match_vars); mijn $ good_test = sub {mijn $ obj1 = Math :: BigInt-> new ('42); mijn $ obj2 = Math :: BigFloat-> new ( '7.11'); ; }; als {print "Geen lekken in proef 1 \ n" of Carp :: kwaken ( "Kan niet afdrukken naar STDOUT: $ errno") (lekken ($ good_test)!); } Else {print "Er waren geheugenlekken van test 1 snel \ n" of Carp :: kwaken ( "Kan niet afdrukken naar STDOUT: $ errno"); Mijn} $ = bad_test sub {mijn $ matrix = ; push @ {$} matrix, $ matrix; $ Serie; }; mijn $ bad_destructor = sub { 'Ik ben waardeloos'}; mijn $ tester = Test :: verzwakken :: lekken ({constructeur => $ bad_test, destructor => $ bad_destructor,}); if ($ tester) {my $ unfreed_proberefs = $ tester-> unfreed_proberefs (); mijn $ unfreed_count = @ {$ unfreed_proberefs}; printf "Test 2:% d van% d oorspronkelijke verzoeken zijn niet bevrijd \ n", $ tester-> unfreed_count (), $ tester-> probe_count () of Carp :: kwaken ( "Kan niet afdrukken naar STDOUT: $ errno") ; afdrukken "Dit zijn de sonde verwijzingen naar de unfreed objecten: \ n" of Carp :: kwaken ( "Kan niet afdrukken naar STDOUT: $ errno"); voor mijn $ ix (0 .. $ # {$ unfreed_proberefs}) {print Data :: Dumper-> Dump (], ) of Carp :: kwaken ( "Kan niet afdrukken naar STDOUT: $ errno"); } } Vereisten: · Perl


Test :: verzwakken Gerelateerde software