Analysieren von Leistung in Enterprise Java Beans

Performance Analyse ist wahrscheinlich eines der komplexesten Aufgaben in jeder Anwendung zu entwerfen. Es ist eine ungenaue Wissenschaft, weil es viele Faktoren, die ins Spiel kommen. Diese werden ergänzt in Enterprise Javabeans (EJB) Anwendungen, in denen die Leistung hängt weitgehend von der Umsetzung des EJB-Container Sie verwenden. Unterm Strich ist, dass Sie nicht wissen, ob Sie die richtigen Performance Entscheidungen machst, bis Sie sie testen.

Im Folgenden sind einige Fragen, die Sie im Auge behalten sollten, wenn Performance-Probleme unter Berücksichtigung

  • Nicht alle EJB-Container sind gleich. Während jeder EJB-Container an den EJB-Spezifikation entsprechen müssen, haben die Hersteller großen Spielraum in der EJB-Container implementieren. Ihre Anforderungen konzentrieren sich auf die Ergebnisse von Operationen, nicht auf eine Effizienz des Betriebs. Einige Anbieter wird einen besseren Job mit verschiedenen Abschnitten eines EJB-Container zu tun. Sie müssen bestimmen, wo die Effizienz in einem EJB-Container gewonnen werden und wo Performance-Engpässe auftreten werden. Der einzige Weg, zu wissen, dass mit Sicherheit zu versuchen, bevor Sie kaufen. Auch wenn Sie eine Lösung, wichtige Design-Entscheidungen zu kaufen, wie, ob oder nicht EJB Entity Beans zu verwenden, sollten getestet werden.
  • Die Leistung kann auf die volle Leistungsfähigkeit Ihrer Anwendung ab. Es gibt allgemeine Regeln, die Ihnen helfen können, um zu bestimmen, welche Anwendung Entwürfe besser sind als andere. Aber diese Richtlinien kann leicht mit einem schlampigen Umsetzung für ungültig erklärt werden. Der beste Weg, um sicherzustellen, dass Sie schlampig Implementierungen vermeiden, ist regelmäßig durchzuführen Code-Reviews - das ist, wenn Sie sitzen um mit allen Codierung Mitarbeiter und haben sie Ihre Arbeit überprüfen - während Ihres EJB-Projekt. Sie sollten Ihren Code-Reviews auf die Analyse der Quelle konzentrieren und sicherzustellen, dass sie beide gut gestaltet ist und effizient. Code-Reviews bieten eine große Chance für die Programmierer von einander zu lernen.
  • Entwickeln Sie einen Prototyp Ihrer Leistung Annahmen zu testen. Hier ist ein Beispielszenario. Als EJB-Anwendung Entwickler sollten Sie frühzeitig entscheiden, ob oder nicht Entity Beans zu verwenden, die Interaktion mit einer Datenbank zu verwalten. Ihre zwei grundlegende Entscheidungen sind zu

# 8226; Erstellen Sie Entity Beans Datenbank-Interaktion zu verwalten. Entity Beans können Sie Ihre Datenbank-Interaktion aus einer Anwendungsprogrammierung Perspektive vereinfachen. Aber sie können auch eine Leistungseinbuße exakt. Ein Teil dieser Strafe kann in der Art und Weise gesteuert werden, dass Sie Entity Beans implementieren - das heißt, durch Verwendung von lokalen Schnittstellen gegenüber Remote-Schnittstellen oder von Entity Beans grobkörniger Objekte zu machen.

# 8226; Code JDBC-Datenbank ruft direkt in Session Beans und die Verwendung von Entity Beans ganz zu vermeiden. JDBC kann schwieriger zu arbeiten als mit Entity Beans mit Container-gesteuerter Persistenz verwendet wird. Dieser Kurs kann untergraben auch Ihre Fähigkeit, den Vorteil von EJB-Container-gesteuerten Transaktionen zu übernehmen.

welcher der beiden Kurse Um zu bestimmen, besser geeignet ist, können Sie einen einfachen Test durchführen:

1. Erstellen Sie eine Entity-Bean und eine Session-Bean, die beide Operationen auf dem gleichen Satz von Daten aus einer Datenbank durchführen.

2. Schreiben Sie ein einfaches Programm, das die Höhe der Zeit misst erforderlich, um eine Reihe von Einfügungen, Aktualisierungen, Abfragen aufrufen und Änderungen in der Datenbank.

Durchführen der gleichen Reihe von Operationen auf jedem - Dieses zweite Programm sollte die Session-Bean für einen Test und der Entity-Bean für einen weiteren Test aufrufen.

3. Analysieren Sie die Ergebnisse, um zu bestimmen, ob die Leistung wird ein Thema sein.

Wenn Sie ein feinkörniger Performance-Analyse wollen, können Sie einzelne Schritte Zeit - die teuerste Operation zu identifizieren - und dann versuchen, diese Operationen zu modifizieren, um Performance-Gewinne zu generieren.

Für eine Entity-Bean, können Sie die Leistung auf den folgenden Operationen zu messen:

  • Wie lange dauert es, einen Verweis auf eine Remote-Schnittstelle zu erhalten oder eine lokale Schnittstelle?
  • Was ist der Unterschied in der Leistung zwischen ein Update auf einem Remote-Schnittstelle durchführen und eine lokale Schnittstelle?
  • Was ist der Unterschied zwischen mehreren Zeilen in einer Datenbank in JDBC-Aktualisierung und eine Aktualisierung auf mehrere Zeilen Ausführen der Heimat Methode eines Entity-Bean mit?

Die Antworten auf diese Fragen werden von EJB-Container zu EJB-Container unterschiedlich sein und wird auch von ihr beeinflusst werden: a) der JDBC-Treiber Sie wählen- b) ob Sie die Datenbankverbindung pooling- verwenden und c) die Effizienz Ihrer Implementierungen der Entity-Bean und die Session-Bean. Sie werden wahrscheinlich durch einige der Ergebnisse überrascht sein, erhalten Sie - Tests wie diese haben die Möglichkeit, Ihre Annahmen über die Leistung von Entity Beans herauszufordern.

Wenn Sie eine EJB für die Leistung sind Tuning, machen keine zufällige Veränderungen. Stattdessen konzentrieren Sie sich auf die Schritte in der Anwendung, die am meisten in Bezug auf Leistung kosten.

Hinweis:Leistungsmessungen in der Regel zeigen, dass ein Geschäftsprozess hat nur ein oder zwei Punkte, an denen erhebliche Verbesserungen vorgenommen werden können. Diese Beobachtung wurde schon oft genug gemacht, dass es zur Schaffung der Pareto 80-20 Regel geführt. Diese Regel besagt, dass 80 Prozent der Ausführungszeit eines Programms zu 20 Prozent des Codes zurückzuführen ist. Ihr Ziel sollte identifizieren, auf die 20 Prozent des Codes ist am teuersten in Bezug auf die Systemressourcen und konzentrieren sich auf den Teil zu optimieren.

Menü