A Look at Software Performance Since 1940s Igor Zinkovsky (
[email protected]) Nikolay Topilski (
[email protected]) Abstract A look though the history of computing shows very rapid growth of various technologies enabling computer industry to become the dominant force it is today. Computers went from being immensely bulky, unreliable, and expensive to elegant, connected, and affordable. Throughout this evolution process one important aspect always occupied the minds of system and application engineers - performance. This paper will go through the history of computing beginning with 1940s and highlight important aspects which defined how computer performance was approached at each significant milestone of computing. Early computers were custom-made electronic digital machines commissioned by the military to perform intense numerical calculations. Important aspect of these early machines was the ability for people to program, making its users to be first computer programmers. Although the concept of software has not been born yet and programs consisted of switches-wires combinations, we already see programmers think about optimizing programs to work around performance bottlenecks. During 1950s-60s computer industry went through one of the most significant transitions in its short history. Due to significant advances in hardware, computers were becoming increasingly powerful, and as a result computer applications were becoming increasingly complex. To deal with complexity, we see a sharp separation of hardware and software. Ever since the separation the goal of software performance engineering has been to develop creative solutions to reduce or tolerate speed limitations placed on the system by hardware. This principle is being followed by the industry until this day.