Performance Tip: How to Prevent 100% CPU Spikes with TortoiseSVN

Posted by | July 08, 2011 | Web Development | 6 Comments

One of the tools I swear by is Subversion, since I use Windows as my default development OS, it is only natural that TortoiseSVN is pretty much installed on any environment I work on. The only downside I can tell to TortoiseSVN is it’s poorly designed cache mechanism that does not scale well with large sets of files.

Since I manage and build around 15-25 massive Magento based websites at any given time and Magento isn’t a small application by any standard – with over 10,000 files in the Community Edition alone, I am stretching the scope of what TortoiseSVN and Subversion were designed to work with on the client side at least.

One of the things I noticed is that TortoiseSVN will constantly hog one of my cores to a full 100% and stay like this for a couple of hours. Additionally, while the core is spiking my SSD would be accessed and written to like crazy, I mean close to benchmarking status. Then it will relax and after a day or two this will repeat itself. Since I use a laptop with Intel  i7 with 4 cores there is not much impact on what I do, but the 100% spikes will warm my laptop and drain the battery rapidly. To fix this all I had to do is disable the caching mechanism that comes turned on by default in TortoiseSVN.

To turn off the cache in TortoiseSVN and avoid CPU and HD scratching spikes, follow these instructions:

1. Open the TortoiseSVN Settings Window:

TortoiseSVN settings window

2. Disable TortoiseSVN Icon Overlay Status Cache:

TortoiseSVN disable icon overlay status cache

3. Disable TortoiseSVN Log Caching:

TortoiseSVN disable log caching

Done. Happy Coding!

6 Comments

  • Stefan Küng says:

    Turning off the log cache won’t help at all. The log cache is completely different than the status cache and doesn’t run in a separate process (TSVNCache).

    I would recommend to turn on the log cache again – it is only read/written from when you show the log or when some other command requires a quick log info.