in reply to X-platform testers wanted: new version of Devel::Size
If anyone wants a very fast, reliable version of Devel::Size and they are using Win32, please /msg or email me.
By way of example, the datastructure that this command creates:
perl -MDevel::Size=total_size -wle"$h{ $_ } = [ \( 1 .. $_) ] for 1 .. 3e3; scalar<>; print total_size( \%h ); scalar <>"
Takes the standard version of Devel::Size 45 seconds to size, and consumes a whopping 900+MB over and above the memory required by the data structure itself.
With my modified version, it takes less than 3 seconds and require less that 10MB of additional memory.
It also fixes many of the existing known traps & bugs.
If your on another platform sorry. The code would run perfectly well where you are but would need changes to the makefile, but apparently no one knows how to make them!).
An extended example that sizes the entire opcode tree with a bunch of common large modules loaded and showing the diagnostics produced that would otherwise be segfaults with the standard version:
c:\test>perl -MHTML::Parser -MDBM::Deep -MException::Class -MDBI -MClass::Std -MDate::Calc -MDate::Manip -MData::Dump::Streamer -MCGI -MCGI::Application -MLWP -MOpenGL -MTk -MGD -MIO::Socket -MPOSIX -MDevel::Size=total_size -wle"print total_size( \%:: )" Devel::Size: Calculated sizes for compiled regexes are incompatible, a +nd probably always will be # Devel::Size: baseop: 1c6ea5c baseop->op_next: d5 ignored! # Devel::Size: baseop: 1c6b9cc baseop->op_next: d5 ignored! # Devel::Size: baseop: 1c68ae4 baseop->op_next: d0 ignored! # Devel::Size: baseop: 1c64d0c baseop->op_next: ca ignored! # Devel::Size: baseop: 1c5fb54 baseop->op_next: de ignored! # Devel::Size: baseop: 1c5d2fc baseop->op_next: dc ignored! # Devel::Size: baseop: 4030007 baseop->op_next: ff ignored! # Devel::Size: baseop: 1c5ab2c baseop->op_next: dc ignored! # Devel::Size: baseop: 1c582cc baseop->op_next: dc ignored! # Devel::Size: baseop: 1c55534 baseop->op_next: d9 ignored! # Devel::Size: baseop: 1c52a3c baseop->op_next: db ignored! # Devel::Size: baseop: 1c627cc baseop->op_next: e3 ignored! # Devel::Size: baseop: 1c4cb84 baseop->op_next: db ignored! # Devel::Size: baseop: 1c4a07c baseop->op_next: de ignored! # Devel::Size: baseop: 1c46c64 baseop->op_next: cb ignored! # Devel::Size: baseop: 1c3493c baseop->op_next: d9 ignored! # Devel::Size: baseop: 1c73b2c baseop->op_next: cc ignored! # Devel::Size: baseop: 1cfb0f4 baseop->op_next: d0 ignored! # Devel::Size: baseop: 1cf843c baseop->op_next: d1 ignored! # Devel::Size: baseop: 1cf5d1c baseop->op_next: db ignored! # Devel::Size: baseop: 1cf35cc baseop->op_next: d8 ignored! # Devel::Size: baseop: 1cf0f7c baseop->op_next: dd ignored! # Devel::Size: baseop: 1cee80c baseop->op_next: d9 ignored! # Devel::Size: baseop: 1ce8e74 baseop->op_next: d7 ignored! # Devel::Size: baseop: 1ce568c baseop->op_next: dd ignored! # Devel::Size: baseop: 1ce030c baseop->op_next: df ignored! # Devel::Size: baseop: 1cdd5ec baseop->op_next: c7 ignored! # Devel::Size: baseop: 1cdae44 baseop->op_next: d4 ignored! # Devel::Size: baseop: 1cd81ec baseop->op_next: d6 ignored! # Devel::Size: baseop: 1cd594c baseop->op_next: d9 ignored! # Devel::Size: baseop: 1cb89ec baseop->op_next: bb ignored! # Devel::Size: baseop: 1c90df4 baseop->op_next: cc ignored! # Devel::Size: baseop: 1cfe414 baseop->op_next: ce ignored! # Devel::Size: baseop: 1d01744 baseop->op_next: d3 ignored! # Devel::Size: baseop: 18ee38c baseop->op_next: ca ignored! # Devel::Size: baseop: 18d4894 baseop->op_next: b4 ignored! # Devel::Size: baseop: 19aed0c baseop->op_next: c1 ignored! # Devel::Size: baseop: 22764d4 baseop->op_next: d0 ignored! # Devel::Size: baseop: 251d074 baseop->op_next: c3 ignored! # Devel::Size: baseop: 21d9bec baseop->op_next: d7 ignored! # Devel::Size: baseop: 21d5944 baseop->op_next: d3 ignored! # Devel::Size: baseop: 23a35d4 baseop->op_next: c4 ignored! # Devel::Size: baseop: 239cab4 baseop->op_next: c8 ignored! # Devel::Size: baseop: 23a021c baseop->op_next: c9 ignored! # Devel::Size: baseop: 1b5df14 baseop->op_next: d5 ignored! # Devel::Size: baseop: 222bbd4 baseop->op_next: 87 ignored! # Devel::Size: baseop: 1f5c324 baseop->op_next: be ignored! # Devel::Size: baseop: 1f2c0bc baseop->op_next: d3 ignored! # Devel::Size: baseop: 1f28ba4 baseop->op_next: c4 ignored! # Devel::Size: baseop: 1f24a44 baseop->op_next: d1 ignored! # Devel::Size: baseop: 2448324 baseop->op_next: cc ignored! 7832419
|
|---|