Make Java - Performance

Teil 2
Performance managen


Dieser Teil beschäftigt sich mit Maßnahmen die Sie als Verantwortlicher ergreifen können, um Performanceprobleme von Beginn an bei Ihren Projekt in den Griff bekommen zu können.

Planung

Wie bereits erwähnt ist eine der wesentlichsten Voraussetzung diejenige, dass Sie die Performance Ihrer Anwendung optimieren müssen. Im Vorfeld ist dies nicht immer abzuschätzen, trotzdem bzw. gerade deshalb sollten Sie eine Planung aufstellen. Planen Sie auch für die Performance finanzielle und personelle Ressourcen sowie Zeit ein. Dabei ist es günstiger die Performance bereits von Beginn an in Ihre Planung mit einzubeziehen.
Performance Experten
Versuchen Sie bei mittelgroßen Projekten zumindest zwei Programmierer so ein, dass diese sich zu Performance Experten entwickeln können. Die Ausbildung von internen Mitarbeiter ist dabei üblicherweise preiswerter als externe Speziallisten. Diese können Sie zu Rat ziehen, wenn sich Ihr Projekt bereits in der Abschlussphase befindet. Insbesondere das Internet bietet zahlreiche Informationsquellen, die Ihre Experten mit geringen Kosten nutzen können. Sie sollten jedoch gerade bei mit der Materie wenig vertrauten Mitarbeitern ausreichend Zeit einplanen. Neben dieses „kostenlosen“ Quellen sollten Sie ebenfalls finanzielle Mittel für Bücher, Magazine und Tools sowie Zeit für die Suche im Internet und die Evaluierung der Tools berücksichtigen. Gerade für die Suche im Internet sollten Sie genügend Zeit einplanen. Meine Erfahrung hat gezeigt, dass erst nach etwa ½ Jahr die Suche relativ flott von der Hand geht. Erheblicher Aufwand ist jedoch in die tatsächliche Bearbeitung zu stecken. Neben dem reinen Durcharbeiten der Informationen, welche fast ausschließlich in englischer Sprache vorliegen, benötigen Ihre Experten vor allem Zeit zum Testen der gemachten Aussagen. Diese sind leider nicht immer nicht ganz richtig.
Performance Spezifikation
Ein weiterer wichtiger Punkt ist die Anforderungen an die Performance Ihrer Anwendung durch den Kunden festzuhalten. Herzu bietet sich das Pflichtenheft an. Dabei sollten Sie möglichst genau werden und die Festlegungen für jede Anwendungsschicht getrennt vornehmen. Hierbei sollten Sie keine Verrechnungen untereinander zulassen. Zur frühen Absicherung Ihrer Spezifikationen sollten Sie einen Prototypen aufsetzen, mit welchem die grundsätzliche Machbarkeit auch der Performance geprüft wird.
Getrennte Performance für Schichten
Die getrennten Performancefestlegungen für Ihre Anwendungsschichten ermöglichen Ihnen neben der Prüfung jeder einzelnen Schicht vor allem gezielt die Performance Ihrer Anwendung zu verbessern. Ein Beispiel zur Verdeutlichung. Ihr Projekt soll der Einfachheit halber aus drei Schichten bestehen. Zum einem die Datenbank, die Anwendung an sich und die Präsentationsschicht (BNO). Die Performance jeder Ihrer Schichten wurde festgelegt. Natürlich besteht untereinander eine Abhängigkeit die nicht zu unterschätzen ist. Falls Sie nun feststellen, dass sowohl die Datenbank- als auch die Anwendungsschicht die gesetzten Performanceanforderungen erfüllen, müssen Sie lediglich die Präsentationsschicht und somit die Oberfläche optimieren. Dies kann durch einen geänderten Ansatz z.B. dynamisch generierte HTML Dokumente statt Applets geschehen. Sie können und sollten auch noch einen Schritt weiter gehen. So könnten Sie unterscheiden zwischen der Performance der Präsentationsschicht im LAN und der über Ihrer Internetpräsenz.
Aber warum darf keine Verrechnung geschehen? Dies lässt sich wiederum an einem Beispiel gut darstellen. Sie haben wieder die drei o.g. Schichten. Obwohl Ihre Anwendungs- und Präsentationsschicht die Anforderungen nicht erfüllt, können Sie Ihr Projekt dank einer besonders schnellen Datenbankanbindung erfolgreich beenden. Leider beschließt Ihr Kunde gerade das Datenbanksystem zu wechseln ...
Performance in Analyse und Design
Bereits in der Analyse sollten Sie die Performance Ihres Projektes berücksichtigen. Hierbei machen sich sowohl die globalen als auch die lokalen Entscheidungen bemerkbar. Der Wertebereich einer wesentlichen Variablen kann hier ebenso von Bedeutung sein, wie die Entscheidung einer Client Server Architektur. Da die Analyse die fachlichen Anforderungen festlegt benötigen Sie hier zwar keinen Performanceexperten, Sie sollten jedoch mindestens einen Designer dazu auserkoren. Ein Aufwand von ca. 10% sollten Sie dabei einplanen. Jeder Designer muss sich jedoch über die Auswirkungen seiner Entscheidungen auch im Hinblick auf die Performance im Klaren sein. Dies kann z.B. auch die Überlegung sein, wie häufig und wichtig Abfragen über große Datenmenge sind.
Ein weiterer wichtiger Punkt ist das Testen von „3rd Party Tools“. Dies sollten Sie auf keinen Fall vernachlässigen, da Sie auf die Performance dieser Zulieferungen nur selten Einfluss haben.
Performance testen
Das Testen nimmt einen relativ großen Stellenwert ein. Ihre Spezifikationen müssen in geeigneter Weise in eine Testbasis umgesetzt werden, die noch genauer darstellt, welche Anforderungen erfüllt werden müssen. Der Performancetest ist dabei nachrangig gegenüber der fachlichen Funktionalität sollte jedoch von Beginn an in Ihr Testverfahren mit einbezogen werden. Dies erfordert unter Umständen auch den Aufbau eines eigenen Testsystems. Dabei muss die Anzahl der Benutzer, die Netzwerklast und der Zugriff von und zu externen Ressourcen ebenso beachtet werden, wie die Geschwindigkeit bei einem „Ein Personen Ein System Lokalen Zugriff“. Simulationen können sich als besonders geeignet für derartige Tests erweisen. Die Tests müssen wiederholbar und nachvollziehbar sein. Die Ergebnisse dieser Tests müssen sich in geeigneter Weise in den geprüften Teilen Ihrer Anwendung nachvollziehen lassen. Dies kann durch externe Dokumente ebenso wie durch ein Versionierungstool oder einen Kommentar innerhalb einer Quelltextdatei geschehen.
Performance messen
Für die Messung der Performance gibt es während der Entwicklungszeit genügend Tools (Profiler), zumal dieses Thema mehr und mehr Aufmerksamkeit gewinnt. Für die Performancemessung zur Laufzeit können Sie jedoch eigene Wege beschreiten. Hier bietet sich das Einziehen einer weiteren Schicht in Ihre Anwendung an, welche die Protokollierung der Performance zur Laufzeit vornehmen kann. Dies kann mit relativ wenig Aufwand realisiert werden und ermöglicht einer permanente Überwachung, wie Sie bei Internetpräsenzen bereits üblich ist.
Inhaltsverzeichnis
all rights reserved © Bastie - Sebastian Ritter @: w³: http://www.Bastie.de
Diese Seite ist Bestandteil der Internetpräsenz unter http://www.Bastie.de


Java Cobol Software Resourcen Service Links Über mich Zum Gästebuch Forum