<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/107529/">http://git.reviewboard.kde.org/r/107529/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This review has been submitted with commit 8f35439c3804dfa8b521100a44aa89d5140f772a by Vishesh Handa to branch master.</pre>
 <br />







<p>- Commit</p>


<br />
<p>On December 1st, 2012, 11:14 a.m., Vishesh Handa wrote:</p>






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

<div>Review request for Nepomuk, Sebastian Trueg and Simeon Bird.</div>
<div>By Vishesh Handa.</div>


<p style="color: grey;"><i>Updated Dec. 1, 2012, 11:14 a.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;">    FileWatch: Avoid calling the addWatch function recursively
    
    A watch needs to be added for each directory. If we try to add the
    watches recursively, then at each level a new string is allocated which
    consumes memory. This memory is eventually freed, but that doesn't
    decrease the filewatch service's memory footprint.
    
    Additionally, this extra memory can be quite large depending on how your
    directory is structed. For me it makes a memory difference of about
    50mb, but bug reports indicate that it can go as high as 2gb.
    
    _k_addWatches() now only adds one watch and then calls itself. It
    additionally traverses the file system tree in a depth first manner in
    order to avoid extra memory allocations. (Breadth first costs more
    memory)
    
    BUG: 310556
</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;">Memory footprint reduced from 65 to 17mb.</pre>
  </td>
 </tr>
</table>



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


 <a href="http://bugs.kde.org/show_bug.cgi?id=310556">310556</a>


</div>


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

 <li>services/filewatch/kinotify.cpp <span style="color: grey">(e540f76)</span></li>

</ul>

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




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








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