Mehr Power!

vom 11. September 2010

Binford tools
(Bild: Walt Disney Studios - "Home Improvements")

In letzter Zeit höre ich immer häufiger, das man hier oder dort mehr Leistung, mehr Server, mehr Mitarbeiter oder mehr Software-Tools braucht. Natürlich ist es nicht schlecht wenn man von allem viel und reichlich hat, doch ich bin der Meinung, dass oftmals mit ein wenig Anstrengung mehr mit begrenzten Mitteln erreichen lässt.

Besonders bei der Programmierung lässt sich häufig ein vielfaches an Rechenpower oder Speicherverbrauch einsparen. Ein simples Profiling der Anwendung zeigt schnell Engstellen auf, die sich mit ein paar einfachen Zeilen Code (Eine Variable an einer anderen Stelle definieren, Abbruchkriterien an den Anfang der Methode schreiben, Wiederverwendung von Speicher, unnötiges Kopieren, unnötige SQL-Joins rauswerfen etc.) eliminieren lassen.

Im Serverbereich ist es natürlich das einfachste, neue Hardware zu bestellen, sobald der Server in der momentanen Konfiguration anfängt, an einer seiner Grenzen (Platz, Antwortzeit, Zugriffszahl) zu stoßen. Beim Aufsetzen eines Systems wurde anfangs vielleicht nicht daran gedacht, dass zwei Monate später 2000 User täglich einen inperformanten Service nutzen. Oft lohnt es sich, Feintuning an den Parametern vorzunehmen oder schlankere Software einzusetzen. Es braucht nicht immer ein J2EE Application Server in einer eigenen VM zu sein, um ein paar statische Webseiten auszuliefern.

Oft reicht es auch, die Zeiten zu nutzen, in denen die Hardware sowieso nichts zu tun hat. Vermutlich stört es nicht weiter, wenn nachts um 2 Uhr ein Skript 10.000 Bilder umkonvertiertund und zuschneidet. Den Cloud-Ansatz von Google, Amazon und Co. finde ich auch nicht so verkehrt.

Auch bei Software-Tools bin ich immer wieder überrascht, wie viel Geld dafür ausgegeben wird und wie ineffizient diese dann genutzt werden. Ich bin ein großer Freund von Open Source und ich bin bis auf ein paar wenige Ausnahmen sehr zufrieden und auch produktiv damit.

In dem Buch "7 Habits of Highly Effective People" von Stephen Covey (Seite 172) ist eine Grafik beschrieben, die mir seit Jahren in solchen Situationen immer ins Gedächtnis springt:

manager/producer

Ich finde gerade das (aus bestehendem das Maximum herausholen) so spannend. Fast alles lässt sich mit etwas Verstand effizienzer/performanter/einfacher gestalten. Diese Lektion habe ich noch einmal sehr deutlich gegen Ende meines Studiums erfahren: Ein komplexes Problem muss nicht komplex programmiert werden. Die einfachen Lösungen sind nicht nur leichter zu verstehen, sondern meistens auch performanter und schneller.

Allerdings erfordert diese Art der effizienten Ressourcenplanung auch Zeit, Geduld und Hirnschmalz. Wie seht ihr das? Ist es das wert oder ist die Arbeits(kraft|zeit) zu teuer, um sie mit solchen Dingen zu behelligen?

delicious bookmark del.icio.us,

![Binford tools](http://www.crazy-media.de/bilder/tv/hoer-mal-wer-da-haemmert/screen1.jpg)
*(Bild: Walt Disney Studios - \"Home Improvements\")*
In letzter Zeit höre ich immer häufiger, das man hier oder dort mehr L


Kommentare


Ruben am 16. September 2010
Da bin ich ganz deiner Meinung und mehr Spaß macht es auch, da man immer wieder etwas Neues lernen kann - ansonsten würde man ja immer den gleichen Käse machen. :)

Nur muss ich im Büro manchmal Abschnitte machen, da da Budget mancher Projekte nicht erlauben übermäßig viel Zeit zu investieren ... am Ende des Monats zählt dann doch das Konto.

Ich bin der Meinung, dass eine gesunde Investition von zusätzlichem Gedankengut absolut notwendig ist um weiter zu kommen! Auf diesem Weg habe ich schon so viel entdecken können, das ist toll.

kb am 16. September 2010
Tolles Bild!

Tommy am 23. September 2010
Bin ich voll mit dabei. Gut es ist nicht immer so einfach mehr Performance aus der gleichen Hardware raus zu holen.

Als ich meine Abschlußarbeit am DIT gemacht habe und an meinem momentanem (wenn auch im Moment ruhendem Projekt) arbeitete habe ich mich stark mit der optimierung der Daten auseinander gesetzt.

Eins der Schlagwörter hierbei war Caching.
Oft gebrauchtes im RAM behalten statts 1000mal die selbe Anfrage durch eine Datenbank durch jagen.


Dein Punkt mit der zu komplexen Software hat was ganz schön wahres dran. Seit PCs mehr und mehr Power haben sind viele Programme unnötig Komplex, Aufwendig und Ressourcenfressend Programmiert worden.

Die einzigen zwei Industrien in denen meiner Ansicht nach Hardwareeffizient programiert wird sind:
* Spiele Industrie - Ein Stück Hardware aus dem das maximum an Leistung geschöpft werden muss. Wahre zauberer in der Richtung sind wohl die Jungs hinter der God of War Serie.

* Große Server wie Suchmaschinen und Social Networks.
Google generell versuchen jede Software effizient zu entwickeln. Man bedenke einfach nur die Performance von Picasa gegenüber anderen Viewern.

Daniel am 27. November 2010
Ich finde den Ansatz wirklich interessant. Sofort musste ich an die Energiebilanz denken. Umwelttechnisch ist das Thema wirklich von Bedeutung. Durch effizientieres programmieren lässt sich viel Energie sparen, die sonst unnötig verbraucht werden würde.

TabTwo am 27. November 2010
In einer idealen Welt ... :)

Das Problem ist wie immer die zur Verfügung stehende Zeit um etwas sinnvoll zu designen. Sobald Du mal nur noch am reagieren bist und nicht mehr am agieren, ist es zu spät. Entweder Du packst dann eben noch ein paar Stunden extra drauf oder es läuft eben wie bisher.

Informant am 20. January 2011
Yeahh. Tim Allen ( schreibt man doch so ?! ). Seitdem ich arbeiten muss vermisse ich die Sendung total. Keine Ahnung ob die noch läuft. Aber er ist/war mein Liebling im TV neben King of Queens.

Kommentar schreiben