Saturday, January 23, 2016

Java Optimierung


In diesem Post stelle ich euch die wichtigsten Techniken zur optimierung von Java Quellcode vor. Natürlich auch unterstzützt durch Beispiele.
Wie es zu diesem Post kam ist eigentlich leicht zu erklären. Niemand schaut mehr auf die Optimierung von Programmen, da wir doch solche Monstermaschienen produzieren können. In jedem alten Programmierbuch fand man zumindest am Schluss eine Rubrick für Optimierung. Heutzutage wird das gar nicht mehr praktieziert.
Es hat aber schon seine Vorteile. Zum einen ist es besser programmiert und zum anderen spart man dadurch viel Geld. Wenn wir uns mal eine Business Applikation vorstellen die viel Daten verarbeiten muss. Wenn Sie plötzlich in der gleichen Zeit doppelt so viel verarbeiten kann, rendiert sie viel mehr.
Jetzt aber zu den Top Ten Tipps:

  1. Arbeite immer nur mit den Daten welche du auch im Moment brauchts. Das heisst, dass zum Beispiel Referenz Objekte welche nur die benötigten Attribute haben oft einen klaren Performance Vorteil schaffen können, vor allem wen es um Grosse Datenmenge geht, wie das der Fall bei Datenbanken ist.
  2. Vermeide wenn möglich Methodenaufrufe in einer Schleife. Achte immer ob du nur die nötigsten Dinge in einer Schleife erledigs, dieser Programmcode wird X mal ausgeführt. Durch Veränderungen in dieser Materie kann man vieles bewirken.
  3. Achte bei Verzweigungen, dass du die wahrscheinlichsten Fälle zuerst behandelst.
  4. Eliminiere jegliche Redundanz in deinem Quellcode.
  5. Benutze Cache oder das Clonen von Objekten für bessere Performance.
  6. Achte immer auf die DatenTypen welche du brauchts. Erföllen Sie genau nur das, was gebaurcht wird. Oder noch vieles mehr. Und fall du mit Arrays arbeiten solltest, ist arraycopy viel schneller als eine selbstprogrammierte Schleife für diesen Zweck.
  7. Wenn dies möglich ist solltest du Konstanten verwenden. Dies gilt so auch für guten Code standart.
  8. Verwende wenn möglich lieber if -else statt switch -case. Das letztere ist unter Java langsammer.
  9. Verwende ArrayList statt Vektor und StringBuffer statt String.
  10. Vermeide wenn möglich Rekursionen

Gute Bücher zu diesem Thema:
  • Performant Java programmieren von Hendrik Schreiber