A note on Performance

A few people have pointed out that the performance of SpearNZB could be better and I agree. I've noticed that downloading takes twice the CPU as say another product 'Unison'. I've spent allot of time trying different things, investing in profilers and the bottle neck seems to be in the Java runtime.


The reason why this seems to be so, is that the code that takes 95% of the CPU during download is the line to read from the network stream. There are different ways that this can be done, buffer sizes ext and it doesn't seem to make a difference. 


My experience however is that this doesn't cause myself as a user of SpearNZB much if any inconvenience. 

My media computer is a three year old PC running Vista with 2 Gigs of RAM, so not top of the line by any means. It is very common to be downloading at full speed (8 to 20 megabit) and watch a High res TV Show or movie via XBMC without noticeable side affects (Jerky Video, pauses ext...) Even during unraring/copying. 


If you can watch a high res video and download at 8 Megabit without any issues, then it would seem that you could surf the web, do email at the same time or whatever else. 


Now to be fair, the faster the download the more resources will be used, so at 50 Megabit this might not be true. I don't know because I can't test that. 


The screen shot below shows typical resource usage on my development machine (IMac 2.4 Intel Cure 2 Duo, 2 GB RAM)


Screen shot 2009-11-21 at 10.02.11 AM


At the beginning of a download CPU usage can go up to 120% (50% per CPU) and then stable out at around 30%. It does jump up to 50% depending on what it's doing, but 30-40 should be the average. 


Hopefully for most people this is acceptable. If not check in every so often, you never know....