> On Feb. 23, 2012, 6:52 p.m., Aaron J. Seigo wrote:
> > kdecore/util/kshareddatacache.cpp, line 1491
> > <http://git.reviewboard.kde.org/r/104052/diff/1/?file=50811#file50811line1491>
> >
> >     this needs a check on destination being not-null. e.g. if (destination 
> > && !temp.isNull()) above

Ahh, got it. Fixed in code, will update the diff in here in a few minutes.


- Mark


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104052/#review10843
-----------------------------------------------------------


On Feb. 23, 2012, 6:21 p.m., Mark Gaiser wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104052/
> -----------------------------------------------------------
> 
> (Updated Feb. 23, 2012, 6:21 p.m.)
> 
> 
> Review request for kdelibs, David Faure and Michael Pyne.
> 
> 
> Description
> -------
> 
> I was running KWin through callgrind to see where possible bottlenecks are. I 
> wasn't expecting much since it improved greatly during the 4.8 dev cycle, 
> however one stood out. The saving of PNG images was taking about 1/5th of the 
> time in KWin that i could see directly. That looked like something i might be 
> able to optimize.
> 
> What this patch is doing is storing the actual image bits to prevent saving a 
> PNG image to the mmapped cache. That was a hot code path in time (cycles), 
> not even in calls. I've also reduced the amount of memory copies to a bare 
> minimum by adding a rawFind function to KSharedDataCache which fills a 
> QByteArray::fromRawData thus preventing a expensive memory copy. The rawFind 
> is used for looking up an image and fetching it's data without copying it. 
> That is done because QImage seems to make a copy itself internally. I don't 
> have any performance measurements, however, prior to this patch my kwin test 
> was using up ~5.000.000.000 cycles. After this patch it's using up 
> 1.370.000.000. I don't have raw performance numbers to see if the cache 
> itself is actually faster, it certainly has become a lot cheaper to use the 
> cache. Logic wise i would say creating a QImage from the cached data should 
> be way faster now since there is no step involved anymore in decoding the 
> image. Storing is certainly an order of magnitude faster.
> 
> Special thanks go to David Faure for helping me a great deal with this.
> 
> 
> Diffs
> -----
> 
>   kdecore/util/kshareddatacache.h 339cecc 
>   kdecore/util/kshareddatacache.cpp 9fe3995 
>   kdeui/tests/CMakeLists.txt 63788f6 
>   kdeui/tests/kimagecachetests.h PRE-CREATION 
>   kdeui/tests/kimagecachetests.cpp PRE-CREATION 
>   kdeui/util/kimagecache.cpp a5bbbe1 
> 
> Diff: http://git.reviewboard.kde.org/r/104052/diff/
> 
> 
> Testing
> -------
> 
> I've also written a bunch of test cases (greatly improved by David Faure) to 
> see if i didn't break anything. According to the test (which is also 
> comparing the actual image bits) it's all passing just fine.
> 
> 
> Thanks,
> 
> Mark Gaiser
> 
>

Reply via email to