Re: Value-based classes: struct vs shared-data
David Faure <[email protected]> Sat, 30 Sep 2006 00:39:27 +0200
| Newsgroups | gmane.comp.kde.devel.optimize |
|---|---|
| Organization | KDE |
| Message-ID | <[email protected]> |
On Friday 29 September 2006 22:54, Roger Larsson wrote: > On Friday 29 September 2006 14:31, David Faure wrote: > > > Any mistakes in my test? ;) > > > > You did not tell what compiler (version) and options you used. > But I guess it was unoptimized... gcc-4.0.3, default kde-trunk buildsystem options with debugfull enabled. Let's see what happens with -O2 instead of -g3 -fno-inline... QDEBUG : KFileItemTest::testPerformance() CTOR: Simple struct: 16 QDEBUG : KFileItemTest::testPerformance() CTOR: With QSharedDataPointer: 18 QDEBUG : KFileItemTest::testPerformance() COPY CTOR: Simple struct: 5 QDEBUG : KFileItemTest::testPerformance() COPY CTOR: With QSharedDataPointer: 1 Hey that's pretty good. The performance hit for the default ctor is down to 12% while the performance hit for the copy ctor when not using qshareddatapointer is still very high (around 500%, although with '1' the number is too small to mean anything). This seems to confirm that I should go ahead with QSharedDataPointer. -- David Faure, [email protected], sponsored by Trolltech to work on KDE, Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).