René J.V. Bertin
rjvbertin at gmail.com
Mon Jan 4 13:06:08 UTC 2016
I've been keeping an eye out on the "duchain" cache directory, which can really grow to substantial sizes. I have about 39 sessions, and that cache takes up about 6Gb. That's on a Mac, where I can use HFS compression to reduce it with 80-90% (zip level 8), but that's still close to 1Gb and HFS compression is lost as soon as you reopen a file for writing.
Sadly the HFS compression process replaces the file it operates on, so cannot be done when KDevelop is running.
Can subdirectories in kdevduchain be removed without loosing any session/project settings, is anything stored in there that cannot be regenerated (like happens after a crash)?
Is there an easy way to determine (from a cache directory) whether or not the corresponding session is open?
Are there libraries which implement features similar to HFS compression in user space, i.e. an option to compress files (e.g. during KDevelop's shutdown phase) and decompress them transparently when opening them for anything other read-only mode? I can imagine that the parser cache could take a significant hit when compression is used, but 80-90% compression is a considerable gain, esp. knowing that one rarely has more than a few sessions open at a time. (The default algorithm from ZFS or btrfs are supposed to improve IO speeds on storage with a slower interface, though...)
BTW, what happens when you open a project in KDevelop5 that is also part of a KDevelop4 session? Does it get a new cache entry or will both KDevelop versions rewrite each other's cache?
More information about the KDevelop