> > Im willing to do that. > > Do you have any pointers on how to go about debugging - or should I just > > svn the source and read the readme's?
We are using CVS, not SVN :) Quite good profiling tool is callgrind (part of valgrind) to collect data and kcachegrind to examine them in some sort of GUI, > There should be design documentation in the source tarbal in docbook > format. Generated html format is located at > http://pdfedit.petricek.net/pdfedit.design_doc. > > We know about performance issues but don't figure out the problem. There > can be problem with: > - not proper (or effective) maintenance of objects or pdf > operators > - QSA memory management and object allocating and freeing Solution of this problem is simple - upgrade to Qt4.3, which includes QtScript, which in turn have proper API for memory management. After that it is simple, just change all return values from QObject* to QScriptValue, modify lines with return statements, do some more minor changes and you're done :). Also, it is faster than QSA. However, there are some problems: * Qt 4.3 is beta. Almost no major distro have it as package, so in most cases you'll have to compile qt4.3 from source. There should be stable version of qt4.3 around july 2007, this time I expect it will start getting into distros. * Porting from qt3 to qt4 is not trivial, as many things have changed. I have ported already most of the code, but some still remain (there are some hard parts to port without breaking backwards compatibility or cluttering the source with insane amount of #ifdef/#endif's, to which I have still to figure out some elegant way to port them :). Once qt4.3 will reach in most stable distros (which may be somewhere around 2008), we can throw away qt3 compatibility, but probably not sooner. Or I can make step thru qt 4.1/4.2 with a bit newer QSA 1.2.x (however, that QSA still suffer from same problems) and throw away qt3 compatibility. I plan to finish this in relatively near future (its on top of my pdfedit todo list) Another possible solution may be to isolate some commonly used functions in scripting and rewrite them as helper function in C++ (they should be then "converted" to a slot function, a method in class Base (base.cc, base.h)). I have done that with some matrix transformation functions recently. This will help even if the QSA will be replaced with QtScript, as C++ implementation will be always faster (if done right) than scripted one. > - many thinks are synchronized by observers (asynchronously), > maybe there are some observers still registered on dead object > still doing some mess. This may be worth looking into... > In fact, there can be more places which produce these problems. We want > to dedicate more time after finishing university (what should be in a > short time). Lack of time due to finishing university is currently the major cause while many bugs still remain ... Martin Petricek GPG/PGP Public key: http://www.petricek.net/petricm.pgp Fingerprint 6AA8 FFCE C061 1CB2 55F0 A1F3 3AA9 EB4F BD50 C1B8 /------------------------------------------------------------\ | WWW: http://www.petricek.net/ | \------------------------------------------------------------/ ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Pdfedit-support mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/pdfedit-support
