----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/111789/#review37222 -----------------------------------------------------------
This review has been submitted with commit 0c01e89b329a846718e67dc59d216cdf6440e3f3 by Frank Reininghaus to branch frameworks. - Commit Hook On July 29, 2013, 10:39 p.m., Frank Reininghaus wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/111789/ > ----------------------------------------------------------- > > (Updated July 29, 2013, 10:39 p.m.) > > > Review request for KDE Frameworks and David Faure. > > > Description > ------- > > The other day, I noticed that KFileItem is not declared as a Q_MOVABLE_TYPE. > Therefore, QList does not store KFileItems directly, but only pointers to > them, and allocates memory for every single KFileItem separately. This wastes > quite a bit of memory. > > It looks like now might be a good moment to fix this because we can break > binary compatibility with KDE 4.x. > > > Diffs > ----- > > staging/kio/src/core/kfileitem.h 2c33f3c > > Diff: http://git.reviewboard.kde.org/r/111789/diff/ > > > Testing > ------- > > My poor man's aproach to test the memory usage and performace is here: > http://paste.kde.org/p46abc91f/ (the reason for the 10 second delay is that I > needed some time to take a KSysGuard screen shot). > > It creates a KFileItemList with 1 million empty KFileItems. The memory usage > change is shown in the pictures. I used both massif/massif-visualizer and > KSysGuard to measure how much memory it uses. The KSysGuard measurement shows > a far bigger difference - this is because massif only measures the net memory > consumption and fails to consider the overhead which is caused by the memory > allocator itself. The latter is quite considerable when many small memory > allocations are made. > > Moreover, I also measured the runtime of the test (without massif). > > 5 measurements without patch required between 171 ms and 189 ms. > > 5 measurements with patch required between 98 ms and 106 ms. > > > File Attachments > ---------------- > > Memory usage WITHOUT patch > http://git.reviewboard.kde.org/media/uploaded/files/2013/07/29/before.png > Memory usage WITH patch > http://git.reviewboard.kde.org/media/uploaded/files/2013/07/29/after.png > > > Thanks, > > Frank Reininghaus > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel