<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Robert,</p>
<p>I did quite a few runs in a more or less controlled setting
(normal KDE desktop with a few terminals open but no "real"
activity):</p>
<p>~1400 images to read</p>
<p>rm index.xml exif-info.db .thumbnails/*<br>
kphotoalbum -c index.xml</p>
<p>before each run, I cleared the cache in a separate window (as
root):</p>
<p>sync;echo 3 > /proc/sys/vm/drop_caches <br>
</p>
<p>These are the results sorted by duration (only the time it takes
to read/process the images after rescan...):<br>
</p>
<p> </p>
<table cellspacing="0" border="0">
<colgroup width="88"></colgroup> <colgroup width="77"></colgroup>
<colgroup width="55"></colgroup> <colgroup width="107"></colgroup>
<colgroup width="131"></colgroup> <colgroup width="111"></colgroup>
<colgroup width="55"></colgroup> <colgroup width="75"></colgroup>
<tbody>
<tr>
<td height="17" align="left">storage</td>
<td align="left">Preset</td>
<td align="center">preload</td>
<td align="center">Threads preload</td>
<td align="center">Threads pre thumbs</td>
<td align="center">Threads Thumbs</td>
<td align="center">second</td>
<td align="center">avg cpu %</td>
</tr>
<tr>
<td height="17" align="left">Nfs – repeat</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">13</td>
<td align="center">96.7</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">18</td>
<td align="center">69.2</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">0</td>
<td align="center">18</td>
<td align="center">92.6</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">19</td>
<td align="center">44.2</td>
</tr>
<tr>
<td height="17" align="left">Nfs – repeat</td>
<td align="left">NET</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">19</td>
<td align="center">75.2</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">4</td>
<td align="center">20</td>
<td align="center">61.0</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">20</td>
<td align="center">76.1</td>
</tr>
<tr>
<td height="17" align="left">Ssd – repeat</td>
<td align="left">SSD SATA</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">20</td>
<td align="center">76.3</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">20</td>
<td align="center">78.6</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">2</td>
<td align="center">4</td>
<td align="center">0</td>
<td align="center">20</td>
<td align="center">87.4</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">23</td>
<td align="center">73.7</td>
</tr>
<tr>
<td height="17" align="left">ssd</td>
<td align="left">SSD SATA</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">36</td>
<td align="center">43.9</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">0</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">154</td>
<td align="center">13.1</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">154</td>
<td align="center">16.6</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">8</td>
<td align="center">154</td>
<td align="center">16.8</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">4</td>
<td align="center">4</td>
<td align="center">0</td>
<td align="center">155</td>
<td align="center">16.5</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">x</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">162</td>
<td align="center">15.7</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">4</td>
<td align="center">175</td>
<td align="center">10.8</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">manual</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">175</td>
<td align="center">10.9</td>
</tr>
<tr>
<td height="17" align="left">nfs</td>
<td align="left">NET</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">176</td>
<td align="center">11.0</td>
</tr>
</tbody>
</table>
<p>
<style type="text/css">
body,div,table,thead,tbody,tfoot,tr,th,td,p { font-family:"Liberation Sans"; font-size:x-small }
a.comment-indicator:hover + comment { background:#ffd; position:absolute; display:block; border:1px solid black; padding:0.5em; }
a.comment-indicator { background:red; display:inline-block; border:1px solid black; width:0.5em; height:0.5em; }
comment { display:none; }
</style></p>
<p>It took a while until I found out, that the thread settings have
an effect only if the checkbox "do preload" is checked.</p>
<p>There are 3 lines with "repeat" in the table. These runs were
done without clearing the cache beforehand.</p>
<p>If the images were copied or otherwise read by any process before
reading the images, the files get transferred from memory instead
from disk. If you have enough memory.</p>
<p>My NFS is on a RAID1 spinning rust server via GB-Ethernet. While
reading from NFS, the transfer rate was around 70 MB per sec in
all these cases. My ssd delivers around 480 MB per sec.</p>
<p>Thus, the repeat - results are for an optimal disk (reading from
memory).</p>
<p>My machine is a Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (skylake,
4 real cores with hyperthreading enabled, reporting as 8 cores in
top), memory is 32 GB.</p>
<p>The measurements were done with: dstat -a --output xxx.csv</p>
<p>This gives one reading per second. I just counted the seconds
with high transfer or CPU rates. Thus the values might be off by a
second or two.<br>
</p>
<p><br>
</p>
<p>My conclusions from this test are:</p>
<p>- preloading speeds things up, at least a little. <br>
</p>
<p>- funny enough, nfs seems to gain a bit more (175 to 155 sec)
than the ssd (20 to 18 sec).</p>
<p>- using as many threads as there are logical cpus does not clog
the pipes: nfs just spits out its usual 70 MB/sec and takes its
time without having any adverse effects on the rest of the system
(except using a lot of bandwidth). Thus, my worries were not
justified.<br>
</p>
<p>- The presets are slower than manual settings. <br>
</p>
<p>- I will keep the x-8-8-8 scheme for the time being (even while
working over nfs). I might just find a few files in the cache. <br>
</p>
<p>- It might be a good idea to start up KPA directly after you
copied the images into their folders: copy also loads the files
into the cache where KPA finds them faster than from disk. (I
tested this.)</p>
<p>- it is absolutely necessary to flush the cache before you do any
of these test. Otherwise you get overly fast results.</p>
<p>- for tests of different SSDs you would need more images to get a
better resolution.</p>
<p><br>
</p>
<p>I like what I saw and will keep the current version
(v5.5-150-g323e2b29) "in production" (until the next tests are
due).<br>
</p>
<p>Thanks for working on and improving KPA!</p>
<p>Cheers, Andreas<br>
</p>
<p><br>
</p>
<p><br>
</p>
</body>
</html>