[Nepomuk] Review Request: FileWatch: Avoid calling the addWatch function recursively

Vishesh Handa me at vhanda.in
Sat Dec 1 11:14:37 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107529/
-----------------------------------------------------------

(Updated Dec. 1, 2012, 11:14 a.m.)


Review request for Nepomuk, Sebastian Trueg and Simeon Bird.


Changes
-------

Made addWatch return false if the filter is true.


Description
-------

    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


This addresses bug 310556.
    http://bugs.kde.org/show_bug.cgi?id=310556


Diffs (updated)
-----

  services/filewatch/kinotify.cpp e540f76 

Diff: http://git.reviewboard.kde.org/r/107529/diff/


Testing
-------

Memory footprint reduced from 65 to 17mb.


Thanks,

Vishesh Handa

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20121201/07dd1486/attachment.html>


More information about the Nepomuk mailing list