[Parrot] #528: Clone and Modify in DynPMC VTABLE Initialization
chromatic
chromatic at wgz.org
Mon May 4 23:46:08 UTC 2009
On Monday 04 May 2009 15:50:21 Parrot wrote:
> The branch didn't split up class_init, but it did push vtable
> initialization down to runtime and remove PARROT_EXPORT from all VTABLE
> functions. Since that last part was the point of this ticket, I'm marking
> it resolved.
Note that this improves startup speed dramatically. Running "Hello, world!"
from PBC before:
20,428,661 callgrind instructions
... and after:
9,847,367 callgrind instructions
nm -g shows we only export 7768 symbols now -- many of those are opcodes:
$ nm -g blib/lib/libparrot.so.1.1.0 | wc
2668 7768 87280
The fewer symbols we export, the faster startup gets. We still spend plenty
of time in the dynamic linker starting up, but now other parts of
initialization are expensive, comparatively.
-- c
More information about the parrot-dev
mailing list