On Sat, 4 Jan 2003, Joaquin Cuenca Abela wrote: > I've find a way to get O(log(n)) as the worst case with any operation on > the piece table. > I've put a description in > http://e98cuenc.free.fr/wordprocessor/piecetable.html > > The main affected class will be pf_Fragments. In the web page (still > not finished) I discuss all the gory details. >
This is a extremely interesting Joaquin and is very, very cool :-) I start to see peicetable performance issues when dealling with documents of about 100 pages or larger right now. Particularly when typing or deleting. You new code would certainly fix those! I haven't looked through your code yet but I assume you rewritten the setNext()/getNext()/setPrev()/getPrev()/getPos() methods in the piecetable? Right? Does the piecetable still logically look like a doubly linked list? Have you done tests with some of the more complex structures in the piecetable, like tables? In addition I just recently introduced footnote fragments which are actually embedded in blocks. These still don't work correctly yet. However when they do I'd like to see how hard it would be to merge these nto your code. Can I continue to think of the piecetable as a doubly linked list logically? However I think the most pressing perfomance issue we currently have and would most like fixed before 2.0 is the problem of slow start-up on XFT builds on systems with lots of fonts. Is this something you're interested in fixing? Maybe we should look at what gtk 2.2 (with XFT built-in) does to make fonts avaialble and just use that. I haven't lookedat what gtk 2.2 does though. Cheers Martin
