<br><div class="gmail_quote">On Sun, Mar 6, 2011 at 10:18 PM, Dmitry Kazakov <span dir="ltr"><></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Git commit e09e0f0b9db6e95aa8a35c879c2d9b530f48d838 by Dmitry Kazakov.<br>
Committed on 06/03/2011 at 19:38.<br>
Pushed by dkazakov into branch 'krita-bounded-pooler-kazakov'.<br>
<br>
Implemented a new bounded tile data pooler<br>
<br>
(!) Important notice: it would be more safe to perform 'make clean'<br>
in krita/image/ directory if you decide to switch to this branch<br>
<br>
Well, this commit implements a new memory-bounded pooler thread. The<br>
configuration of the pool is done using a special option<br>
"memoryPoolLimitPercent". It sets the percent of the memory, that you<br>
would like to spend on the tiles pool. Please notice, that this value<br>
is included in hard/soft limits as well. That means Krita will never<br>
take more than Hard Limit memory on tiles and clones together.<br>
<br>
This implementation performs not full power yet. I haven't done any<br>
optimizations, so the highest efficiency it can reach now is 50% of<br>
tiles pre-clone hits. I could get this numbers on gradient tool and on<br>
very short brush strokes. It is quite curious, but the longer stroke<br>
you do, the less efficient the pooler is. I hope i'll get it fixed<br>
soon.<br clear="all"></blockquote><div><br>I did some research for the pooler efficiency. It looks like many clones-cache miss'es happen due to temporary paint devices we create during the stroke, and it isn't possible to pre-clone any of them beforehand. So the the best thing the pooler can do right now is to preallocate 10-50% of the tiles used in a stroke. I think this is not a bad result anyway =)<br>
<br>So if anyone tested this branch, i would merge it into master ;)<br><br>If you think there is interferences or slowdowns cause by the pooler, you can disable it with setting "memoryPoolLimitPercent" option to 0.<br>
</div></div><br>-- <br>Dmitry Kazakov<br>