Comment un script Perl peut-il connaître sa propre empreinte mémoire?

J’ai un long script Perl en cours d’exécution et j’aimerais lui faire savoir (et signaler) la quantité de mémoire utilisée. Je voudrais avoir cette information à la fois sur Linux et Windows et si possible sur Mac OS X aussi.

Ces modules Perl pourraient vous aider:

  • Windows: Win32 :: Process :: Memory
  • Linux (et peut-être Mac OSX): Linux :: Smaps

Cela vous montrera comment:

http://perldoc.perl.org/Devel/Peek.html

Aussi, http://perldoc.perl.org/perlguts.html

et, des pages de manuel pour perldebug et perldebguts.

Ceci est une méthode rapide et sale et surtout sans CPAN. Il fonctionne sur tout système d’exploitation fournissant un système de fichiers / proc, à savoir les dérivés de Linux et Unix, y compris Mac OS X, et également sur Cygwin sous Windows:

 perl -e 'print qx{ grep VmSize /proc/$$/status };'