fast QListView numerical sort
Uwe Mayer
merkosh at hadiko.de
Thu Feb 12 16:06:38 EST 2004
More information about the Python-list mailing list
Thu Feb 12 16:06:38 EST 2004
- Previous message (by thread): fast QListView numerical sort
- Next message (by thread): Checking for usual descriptors in Python 2.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Andy Salnikov wrote: >> The compare method returns < 0 for "smaller", 0 for "equal", > 0 for >> "bigger". >> Doing so works, but causes a 2 sec delay each time a re-sort has to be > done >> - which is rather annoying (at only less than 1/3 of its expected load!) > Well, this probably comes from PyQt's nature - its a layer between Qt > (which is C++) > and Python. QListView calls some C++ function to sort its items, which in > turn makes > a lot of calls to QListViewItem::compare(). Every call to compare() has to > be > translated from C++ world to Python world, and the result returned back. Yes. I found another suggestion on the web: overwriting the .key() method, which has to return the value that is to be compared during sorting. The .key() method returns a left zero-padded string and thus the string sorting will yield the correct results. However, this is even slower than overwriting the .compare() method. >> Solutions I could come up with are: >> a. derive a C++ QListViewItem that does the numerical sorting and use >> this instead of the default QListViewItem in the hope it'll be faster >> pro: probably the easyest (faster? fast enough?) >> con: not portable > That should be fast enough, I guess, this is the ultimate speed you can > get. > Why isn't it portable? ... yeah, it surely will run on Windows, but then I'll have to take care of the cross-compilation, etc. Which Windows user has a C++ compiler installed? Portability is surely my (personally) least problem, but working with Python its not nice giving up this "portability" feature: take the sources to another platform - run. Another possibility: Have you got any experience with Psyco? I just heard about it, but didn't go into much details until now. Perhaps the just-in-time compiler will boost the performance... Thanks Uwe
- Previous message (by thread): fast QListView numerical sort
- Next message (by thread): Checking for usual descriptors in Python 2.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list