http://www.perlmonks.org?node_id=674567


in reply to GDB journey into perl internals

Probably in some SV which is sv_2mortal()-ized more than necessary.

For what it's worth, I think that is very likely the cause though I don't know why. (See the note in http://search.cpan.org/src/SLANNING/Ogre-0.35/Ogre.xs (search for mortalized).)

So what did you do to speed things up so much?

Replies are listed 'Best First'.
Re^2: GDB journey into perl internals
by cosimo (Hermit) on Mar 18, 2008 at 20:26 UTC

    About the speed up: this is a custom module in which I reimplemented already existing Perl code in C/XS. The main task of this code is to "serialize" to string whatever you throw at it, with custom rules.

    For instance, strings are kept as strings, arrays are just joined, hashes are output as HASH(0x...) unless they have special keys, and objects are serialized with their toString() method, if they have one...

    All these conversions are pushing CPUs. I made a quick prototype where I saw 100% speedups. So I decided to go for it and here it is...

    For the curious, this is part of a proprietary large scale web framework that automatically generates themed HTML/CSS code from high-level "GUI" widgets/controls implemented as Perl classes.