Das Performance-Handbuch: Performancemanagement
Dieser Teil beschäftigt sich mit Maßnahmen, die Sie als Verantwortlicher ergreifen können, um Performance-Probleme von Beginn an bei Ihren Projekt in den Griff bekommen zu können.
Planung
[Bearbeiten]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
[Bearbeiten]Planen Sie bei mittelgroßen Projekten zumindest zwei Programmierer so ein, dass diese sich zu Performance-Experten entwickeln können. Die Ausbildung von internen Mitarbeitern ist dabei üblicherweise preiswerter als externe Spezialisten. 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 diesen „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[1].
Gerade für die Suche im Internet sollten Sie genügend Zeit einplanen. Meine Erfahrung hat gezeigt, dass erst nach etwa einem halben 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[2].
Performance-Spezifikation
[Bearbeiten]Ein weiterer wichtiger Punkt ist, die Anforderungen an die Performance Ihrer Anwendung durch den Kunden festzuhalten. Hierzu bietet sich das Lastenheft an. Dabei sollten Sie möglichst genau werden und die Festlegungen für jede Anwendungsschicht getrennt vornehmen. Lassen Sie keine Verrechnungen zwischen den Schichten zu. 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
[Bearbeiten]Die getrennten Performance-Festlegungen 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 Performance-Anforderungen 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
[Bearbeiten]Bereits in der Analyse sollten Sie die angestrebte 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 für eine Client/Server- Architektur. Da die Analyse die fachlichen Anforderungen festlegt, benötigen Sie hier zwar keinen Performance-Experten, Sie sollten jedoch mindestens einen Designer dazunehmen. Einen 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 Datenmengen 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
[Bearbeiten]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 Performance-Test 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 „Eine Personen-Ein System-Lokaler Zugriff“-System. Simulationen können sich als besonders geeignet für derartige Tests erweisen.
Die Ergebnisse dieser Tests müssen wiederholbar und 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
[Bearbeiten]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 Performance-Messung 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 eine permanente Überwachung, wie Sie bei Internetpräsenzen bereits üblich ist.
- ↑ Natürlich können Sie sämtliche Informationen im Internet beziehen. Der zeitliche Aufwand ist dafür jedoch enorm.
- ↑ Auch dieses Dokument erhebt nicht den Anspruch auf Fehlerlosigkeit. Dies ist bei der raschen Fortentwicklung in der IT kaum möglich.