Kompilierungszeit: Wenn der Prozessor den Unterschied macht

Wie verbringt der Durchschnittsprogrammierer seinen Tag? Einfach ausgedrückt, schreiben Programmierer Codes. Diese testen sie dann wieder und wieder. So lange, bis sie das gewünschte Ergebnis erzielt oder den Fehler behoben haben, an dem sie arbeiten.

Glücklicherweise ist dieser Job aufregender als er sich zunächst anhört. Und er erfordert viel Geduld und Präzision. Auf lange Sicht gesehen machen aber die Details, auf die Programmierer weniger achten, einen erheblichen Unterschied aus. Ein gutes Beispiel hierfür ist die Kompilierungszeit.

Das Dilemma mit der Kompilierungszeit

Sie ist der Albtraum eines jeden Programmierers. Oftmals wird sie als selbstverständlich angesehen und einfach hingenommen. In Wahrheit ist sie aber etwas, das den Unterschied zwischen produktiv und unproduktiv sein ausmacht. Die Kompilierungszeit ist im Endeffekt die Zeitspanne zwischen der Durchführung des Systeminputs und dem Zeitpunkt, an dem der Output verfügbar ist. Oder einfacher ausgedrückt: Es ist die Zeit, die der PC benötigt, um zu überprüfen, ob der Code korrekt ist.

Kompilierungszeit ist für den Programmierer in der Regel verlorene Zeit, während der ein Code nicht verändert werden kann.

Wer sich nun fragt, was daran problematisch ist, ist sehr wahrscheinlich selbst kein Programmierer… Ein Beispiel soll das Dilemma verdeutlichen: Jedes Mal, wenn beim Schreiben einer Web- oder Desktop-Anwendung die Taste „Erstellen“ gedrückt wird, um einen Code zu kompilieren, kommt es zu Wartezeiten. Diese können je nach Umfang des zu erstellenden Codes erheblich variieren. Das Problem liegt nun in der Tatsache, dass die Kompilierungszeit bei einem relativ komplexen Code zwischen 30 und 40 Minuten beträgt. In dieser Zeit kann der Code aber nicht verändert werden.

Zeit ist Geld

Während die Programmierer also auf die Fertigstellung der Kompilierung warten, verlieren sie Zeit. Und auf ihr gesamtes Arbeitsleben betrachtet, ist das sehr viel Zeit. Die nachstehende Grafik soll das verdeutlichen.

Eine hohe Kompilierungszeit gehört zu den größten Ärgernissen beim Programmieren. Bild: Windows 8 – Visual Studio 2012

Firefox schafft es im besten Fall in 23 Minuten. Allerdings erhöht sich die Zeit im schlimmsten Fall auf 46 Minuten. Dieser Unterschied kommt durch die Leistung der zentralen Recheneinheit (CPU, Central Processing Unit) zustande.

Die Aussage „Zeit ist Geld“ klingt zwar sehr nach Klischee. Aber in diesem Kontext liegt es auf der Hand, dass niemand gerne so viel Zeit vergeudet. Aus diesem Grund wirkt sich jede verlorene Minute, insbesondere bei freiberuflicher Arbeit, auf die Lieferung und dadurch unter Umständen auch auf den Verdienst aus.

Monatliche Wartezeit: 20 Stunden

Eine effiziente CPU bedeutet am Ende des Monats nicht nur mehr Geld, sondern auch mehr Freizeit und eine erhöhte Leistungsfähigkeit. Auf den ersten Blick verliert der Programmierer nur sechs Minuten bei der Kompilierung eines Projekts. Wenn das aber durchschnittlich zehnmal am Tag passiert, hat er am Ende des Tages 60 Minuten vergeudet. Auf einen Monat hochgerechnet, ergibt das eine Wartezeit von 20 Stunden!

Eine effiziente CPU kann dem Programmierer nicht nur viel Zeit, sondern auch Geld sparen.

 

Ein PC mit schnellerem Prozessor, beispielsweise einem neuen Intel Core i7 der siebten Generation oder sogar mit einem Extreme Edition-Prozessor, macht da einen erheblichen Unterschied. Gute Programmierer wissen, dass das Erstellen eines PCs oder Hinzufügen neuer Komponenten durchaus seinen Reiz hat – für sie ist es möglicherweise sogar richtig aufregend. Deswegen ist es vielleicht nicht einmal zwingend notwendig einen neuen PC zu kaufen.

Schwerstarbeit für die Cloud

Wie der nachfolgenden Tabelle zu entnehmen ist, sind die Leistungsunterschiede zwischen den verschiedenen Prozessoren offensichtlich. Eine Investition macht sich damit fast sofort bezahlt – sowohl finanziell als auch in Bezug auf die eingesparte Zeit. Selbstverständlich gibt es auch andere Ansätze zur „Schadensbegrenzung“. Doch es liegt auf der Hand, dass jede Veränderung im Vergleich zur integrierten Leistung der CPU immer nur relativ sein kann.

Ein schneller Prozessor kann die Kompilierungszeit signifikant verkürzen. Bild: Compiling Qt SDK

Auch der Aufbau einer Cloud kann sich durchaus als nützlich erweisen. Die Konfiguration eines cloudbasierten Servers ermöglicht es, automatisch einen Build einer Software zu erstellen. So kann der Programmierer gleichzeitig an ihr arbeiten, während der Server die „Schwerstarbeit“ erledigt.

Alternativ kann auch der Versuch unternommen werden, die Kompilierungs-Software zu optimieren. Aber das kann sich schnell als Herkulesaufgabe herausstellen. Denn es ist sehr zeitaufwendig, ein Verständnis dafür zu erlangen, wie der Compiler funktioniert und welche Bereiche modifiziert werden müssen. Dennoch kann es sich als brauchbare Lösung erweisen, um die Kompilierungszeit der Software zu reduzieren.

Von Marco Mignano – www.webdevelopertips.com

Share This Article

Read Full Story