On Thu, 2005-01-27 at 18:54, bulia byak wrote:
Program received signal SIGINT, Interrupt. 0x08102195 in sp_object_attach_reref (parent=0x8527a48, object=0x10304690, next=0x0) at sp-object.cpp:437 437 for ( ref = &parent->children ; *ref ; ref = &(*ref)->next ) { (gdb) c Continuing.
So, most time seems to be spent in sp_object_attach_reref,
Ugh, I just looked at sp_object_attach_reref again. It seems like someone was determined to implement that in the most inefficient way possible...
[ the &(*ref)->next business looks like my work, actually, though I'm pretty sure the interface and algorithm were not original to me, I just never bothered to change them when I rewrote... ]
Sadly I've not yet abstracted SPObject the same way I have SPRepr, so making any changes to SPObject will involve rebuilding pretty much the whole tree. Making attach_reref more efficient will have to wait for another night...
[ I'm going to stop crossposting to the users list with this post, since this is kind of offtopic for there. ]
-mental