W

X

Sunday, October 22, 2006

Optimization

Weather Message 3.0 is internally different from Weather Message 2.x. The program were practically rewritten for microsoft.net 2005. I have spent countless hours reviewing the code for bottlenecks and ways to increase performance, which reduces CPU utilization.

Changes this weekend have resulted in some optimizations that give a 50% time improvement in some routines. (This resulted in a few milliseconds of improvement) There were also changes that reduced the per message internal memory requirement.

When it seems that I am not turning out alot of new changes, I am still at work on the software. The microsoft.net 2005 environment is new to all programmers. Because of that, I have to double check the code. It has to work, then when it works, I want to determine if there a faster way to get the job done.

A programmer can write code that works, but uses all of your CPU cycles. My goal has always been to write good code that is highly efficient. I guess that goes back to my days of writing code for computers that had 8,000 bytes of memory. Having access to mega-bytes or giga-bytes of memory and giga-hertz cpus is no excuse for poorly written code.

I recently spent 4 hours rewriting the serial ingest data processing routine. The change resulted in the routine being event driven which was supposed to be a good thing. After the changes, the program consumed twice the cpu cycles. I went back to the original code that worked and provided the lowest cpu usage.

Optimization of the Weather Message code will continue for some time as I learn the best ways of accomplishing tasks.

As a side note to optimization, I will start converting the configuration files of other applications to XML. Although there is a small performance penalty for using XML, this standardization is worth the cost.

No comments: