<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/124539/">https://git.reviewboard.kde.org/r/124539/</a>
     </td>
    </tr>
   </table>
   <br />




<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Milian Wolff.</div>


<p style="color: grey;"><i>Updated Aug. 2, 2015, 2:14 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">drop byte-hashing, use qHash + boost::hash_combine</pre>
  </td>
 </tr>
</table>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Summary (updated)</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Refactor KDevHash to use boost::hash_combine approach internally.</pre>
  </td>
 </tr>
</table>





<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdevplatform
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description  (updated)</h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Refactor KDevHash to use boost::hash_combine approach internally.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Instead of hashing every byte of an integral type individually,
we leverage qHash and boost::hash_combine to create an overall
hash. The result should be just as good, as it's proven technology,
but the hash functions themselves become much faster. This is
demonstrated by the newly added benchmark.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Before:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">**<strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;"><em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**** Start testing of TestKDevHash **</em></strong><strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**
Config: Using QtTest library 5.5.0, Qt 5.5.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.1.0)
PASS   : TestKDevHash::initTestCase()
PASS   : TestKDevHash::benchHash_int()
RESULT : TestKDevHash::benchHash_int():
     0.075 msecs per iteration (total: 77, iterations: 1024)
PASS   : TestKDevHash::benchHash_uint()
RESULT : TestKDevHash::benchHash_uint():
     0.075 msecs per iteration (total: 77, iterations: 1024)
PASS   : TestKDevHash::benchHash_quint64()
RESULT : TestKDevHash::benchHash_quint64():
     0.15 msecs per iteration (total: 77, iterations: 512)
PASS   : TestKDevHash::benchHash_bool()
RESULT : TestKDevHash::benchHash_bool():
     0.018 msecs per iteration (total: 77, iterations: 4096)
PASS   : TestKDevHash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped, 0 blacklisted
**<strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;"><em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**** Finished testing of TestKDevHash **</em></strong></strong>**</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">After:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">**<strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;"><em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**** Start testing of TestKDevHash **</em></strong><strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**
Config: Using QtTest library 5.5.0, Qt 5.5.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.1.0)
PASS   : TestKDevHash::initTestCase()
PASS   : TestKDevHash::benchHash_int()
RESULT : TestKDevHash::benchHash_int():
     0.0244 msecs per iteration (total: 100, iterations: 4096)
PASS   : TestKDevHash::benchHash_uint()
RESULT : TestKDevHash::benchHash_uint():
     0.024 msecs per iteration (total: 99, iterations: 4096)
PASS   : TestKDevHash::benchHash_quint64()
RESULT : TestKDevHash::benchHash_quint64():
     0.025 msecs per iteration (total: 53, iterations: 2048)
PASS   : TestKDevHash::benchHash_bool()
RESULT : TestKDevHash::benchHash_bool():
     0.020 msecs per iteration (total: 85, iterations: 4096)
PASS   : TestKDevHash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped, 0 blacklisted
**<strong style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;"><em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">**** Finished testing of TestKDevHash **</em></strong></strong>**</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">REVIEW: 124539</p></pre>
  </td>
 </tr>
</table>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: grey">(70174433c9d9b88595254887c4f06c12aa7043e0)</span></li>

 <li>language/CMakeLists.txt <span style="color: grey">(2c2b0285b68d209e07af185c43dcf157507f5a54)</span></li>

 <li>language/util/kdevhash.h <span style="color: grey">(40c32935aec9c7e5552769e780c033e96cf63166)</span></li>

 <li>language/util/tests/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>language/util/tests/test_kdevhash.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/projectfilter/projectfilter.h <span style="color: grey">(014e5a1eabbb3a2d9e71baeee3e38643cb8649e7)</span></li>

 <li>serialization/tests/test_indexedstring.cpp <span style="color: grey">(f0c7958ac33c6fc6c4febbaa106e0ca30f8a60f8)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/124539/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>



  </div>
 </body>
</html>