Performing a full scan on my system and noticing resource usage, I notice that almost the whole time, neither my CPU nor my HDD active time were maxed out. My system has a quad core CPU and 8GB RAM. In the scan, my resource usage is osscilating between near max usage on 1 core and 100% HDD time at others.
How about this. When the CPU is maxed out, preload the next files to be scanned into memory
Maybe even use another core to scan these other files. As far as I am concerned, the HDD should permanently be maxed out during a virus scan unless the CPU has been maxed out for ages and there is only a few MB of memory free.
In fact, with random access crippling a modern HDD's performance near 100 fold and a free space bitmap stored as part of the filesystem, would it not make more sense to just scan the areas of the HDD with data in sequentially, and use the part of the file database in memory to work out what's being read from the HDD? AV scanning at over 100 MB/sec or CPU limited.
This dumb short sightedness by developers can go up next to the "every single web browser thinks I want to stop typing in the address bar because the homepage has finished loading"