[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