Prueba :: debilitarse

que liberó a los objetos de memoria fueron, de hecho, liberados
Descargar ahora

Prueba :: debilitarse Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Jeffrey Kegler
  • Sitio web del editor:
  • http://search.cpan.org/~jkegl/

Prueba :: debilitarse Etiquetas


Prueba :: debilitarse Descripción

Prueba que los objetos de memoria liberados fueron, de hecho, liberados Se produce una fuga de memoria cuando se destruye una estructura de datos PERL, pero algunos de los contenidos de esa estructura no se liberan. La memoria filtrada es una sobrecarga inútil. Las fugas pueden impactar significativamente el rendimiento del sistema. También pueden hacer que una solicitud abandonese debido a la falta de memoria. En perl, las referencias circulares son una causa común de fugas de memoria. Se permiten referencias circulares en Perl, pero las estructuras de datos que contienen referencias circulares fugan la memoria a menos que el programador tome medidas específicas para evitar fugas. Las medidas preventivas incluyen el debilitamiento de las referencias y la disposición para romper el ciclo de referencia justo antes de que se destruya la estructura. Cuando se utiliza referencias circulares, es fácil deignar o confundir un esquema para prevenir las fugas de la memoria. Los errores de este tipo han sido difíciles de detectar en una suite de prueba. Atest :: debilité es un módulo PERL que permite una fácil detección de datos PERL sin freible. Prueba :: debilité le permite examinar los datos sin reserva, incluso los datos que generalmente se habrían hecho inaccesibles. Desteler :: debilitar libera la estructura de prueba, luego parece ver si alguno de los contenidos de la estructura no se desechó en realidad. De forma predeterminada, prueba :: debiliten determina el contenido de una estructura de datos al examinar las matrices y los hashes, al seguir referencias, y siguiendo las variables atadas a su objeto subyacente. PRUEBA :: debiliten esto recursivamente a la profundidad ilimitada. Desteler :: debilitarse puede lidiar con referencias circulares sin entrar en bucles infinitos. Prueba :: debiliten no visitará el mismo objeto de datos PERL dos veces. PRUEBA DE USO DE LASYNOPSIS :: debilite QW (Fugas); Usa datos :: Dumper; Usa Matemáticas :: BIGINT; Usa Matemáticas :: Bigfloat; Usa la carpa; Utilice el inglés QW (-no_match_vars); My $ Good_Test = Sub {My $ OBJ1 = Matemáticas :: BIGINT-> Nuevo ('42 '); My $ obj2 = Matemáticas :: Bigfloat-> Nuevo ('7.11'); ; }; Si (! fugas ($ good_test)) {impresión "sin fugas en la prueba 1 \ n" o carpa :: Croak ("No se puede imprimir a STDOUT: $ ERRNO"); } else {impresión "Hubo fugas de memoria de la prueba 1! \ n" o carpa :: Croak ("No se puede imprimir a STDOUT: $ ERRNO"); } My $ bad_test = sub {My $ Array = ; Push @ {$ Array}, $ Array; $ matriz; }; My $ BAD_DESTRUCTOR = SUB {'Soy inútil'}; My $ TESTER = TEST :: debiliten :: Fugas ({constructor => $ bad_test, destructor => $ bad_destructor,}); if ($ tester) {My $ FreeD_PROBEREFS = $ TESTER-> UNFRENEED_PROBEREFS (); MY $ UNFREEDED_COUNT = @ {$ UNFREEDED_PROBEREFS}; PRUPTF "PRUEBA 2:% D DE% D Las referencias originales no fueron liberadas \ N", $ TESTER-> UNFRENEED_COUNT (), $ TESTER-> Probe_Count () o Carpa :: Croak ("No se puede imprimir a STDOUT: $ ERRNO") ; Imprimir "Estas son las referencias de la sonda a los objetos no reatados: \ n" o carpa :: Croak ("No se puede imprimir a STDOUT: $ ERRNO"); Para mi $ ix (0 .. $ # {$ UNFREEDED_PROBEREFS}) {Datos de impresión :: Dumper-> DUMP (], ) o carpa :: Croak ( "No se puede imprimir a STDOUT: $ ERRNO"); }} Requisitos: · Perl


Prueba :: debilitarse Software relacionado