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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On July 15th, 2013, 7:41 p.m. UTC, <b>Andrea Diamantini</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">It truly seems good! Many thanks! Just 2 questions: 
1) how could you time so well things happening (generic hiding in 300-500 ms, domain-specific hiding 30-70µs)?
2) how much this improve app memory footprint? (I mean: we were using just a string for each rule, now we have a string and 2 multihash...)</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">For the performace measurements I used the clock_gettime function from ctime (I got the idea from http://www.guyrutenberg.com/2007/09/22/profiling-code-using-clock_gettime/ ).

All I can say about the memory footprint is, that it is increased. With my configurtation (EasyList, EasyList Germany, EasyPrivacy), one of the multihashs has about 30 entries, the other about 16000. You could probably use on of the valgrind tools for exact figures, but when I tested it, valgrind was to slow to be able to display the startpage in one hour...
But it would also be increased if the rules are stored as a list of strings, because at the moment, the domain-specific rules are just thrown away. I did this actually before I used the hash and it was very slow, because every rule had to be checked for every request.

</pre>
<br />










<p>- Paul</p>


<br />
<p>On July 15th, 2013, 2:10 p.m. UTC, Paul Rohrbach wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for rekonq.</div>
<div>By Paul Rohrbach.</div>


<p style="color: grey;"><i>Updated July 15, 2013, 2:10 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </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;">Adding domain-specific hiding support to the adblocker.

The domain-specific rules are stored in a QMultiHash, where the key is the domain and the values are the rules for the specified domain. This causes redundancy, because on rule can be applied to more than one domain, but has a really fast look-up time. The code for the generic hiding has not changed and is just relocated.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">- it hides things
- it is reasonably fast (generic hiding takes with my configuration 300-500ms, the domain-specific hiding only takes 30-70µs)</pre>
  </td>
 </tr>
</table>




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

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

 <li>src/adblock/adblockelementhiding.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/adblock/adblockelementhiding.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/adblock/adblockmanager.h <span style="color: grey">(3d329ad)</span></li>

 <li>src/adblock/adblockmanager.cpp <span style="color: grey">(51000a3)</span></li>

</ul>

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







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








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