I have an 8 CPU 3GHz Windows machine that is estimated to finish a calculation using Excel in 16 days based on a sample data test. This performance is not acceptable(!).
The calculation does not use the capabilities of Excel but is basically a VBA script calling a COM object which has a Calculator function.
The Calculator Process is using 25% CPU and Excel is using 1%. Swap memory does not seem to be used. Since the process is reading and writing to text files, I assume that it is I/O related. I/O read/write counts are counting constantly during the calculation.
A virus checker is installed, but it is not actively checking. i.e. CPU is 0% during the calculation period.
The best suggestion so far, is to use a RAM Disk.
Could you suggest any other avenues of investigation into the performance bottleneck?
Many thanks for the advice below. Basically the Calculator Process, is a specialized Financial Calculator but as mentioned below it looks like the bottleneck is using it via COM. This method is removing all the multithreaded functionality that is offered by the calculator, which can also be addressed as a web-service.
The real-world scenario that is involved is a once in three year financial table update using this new Calculator. Unfortunately not enough time was reserved in the early enough in the schedule for performance estimation thus resulting in the urgency of investigation of the performance problem. Since this calculation is not done on a regular basis, there is no requirement to set up an environment optimized for speed.
The correct solution to scrap Excel and write a multithreaded dispatcher to the Calcualtor is apparent but we are currently looking for some workaround that we get the calculations done in a reasonable amount of time.