Was Sie beschreiben, ist 'Performance-Tuning'. Wenn wir über Performance-Tuning sprechen, gibt es zwei Aspekte daran. (a) Reaktionszeit - wie lange es dauert, eine bestimmte Anfrage/ein bestimmtes Programm auszuführen. (b) Durchsatz - Wie viele Anfragen es pro Sekunde ausführen kann. Wenn wir normalerweise 'optimieren' - wenn wir unnötige Verarbeitung eliminieren, verbessern sich sowohl die Reaktionszeit als auch der Durchsatz. Wenn jedoch Warteereignisse in Ihrem Code vorhanden sind (wie Thread.sleep(), I/O-Wartezeit usw.), wird Ihre Reaktionszeit beeinflusst, jedoch nicht der Durchsatz. Durch die Annahme von paralleler Verarbeitung (Erzeugen mehrerer Threads) können wir die Reaktionszeit verbessern, aber der Durchsatz wird nicht verbessert. Typischerweise sind sowohl die Reaktionszeit als auch der Durchsatz für serverseitige Anwendungen wichtig. Für Desktop-Anwendungen (wie eine IDE) ist der Durchsatz nicht wichtig, nur die Reaktionszeit ist wichtig.
Sie können die Reaktionszeit durch 'Performance-Tests' messen - Sie notieren einfach die Reaktionszeit für alle wichtigen Transaktionen. Sie können den Durchsatz durch 'Lasttests' messen - Sie müssen kontinuierlich Anfragen von ausreichend vielen Threads/Kunden pumpen, so dass die CPU-Auslastung des Servers bei 80-90% liegt. Wenn wir Anfragen pumpen, müssen wir das Verhältnis zwischen verschiedenen Transaktionen aufrechterhalten (genannt Transaktionsmix) - zum Beispiel: in einem Reservierungssystem gibt es 10 Buchungen für jede 100 Suche. Es gibt eine Stornierung für jede 10 Buchungen usw.
Nach Identifizierung der Transaktionen, die für die Reaktionszeitabstimmung (Leistungstests) erforderlich sind, können Sie die Hot Spots mithilfe eines Profilers identifizieren. Sie können die Hot Spots für den Durchsatz identifizieren, indem Sie die Reaktionszeit * Bruchteil dieser Transaktion vergleichen. Wenn wir uns etwa das Szenario Suche, Buchung, Stornierung ansehen, beträgt das Verhältnis 89:10:1. Die Reaktionszeiten betragen 0,1 Sekunden, 10 Sekunden und 15 Sekunden. Last für Suche - 0,1 * 0,89 = 0,089 Last für Buchung- 10 * 0,1 = 1 Last für Storno= 15 * 0,01= 0,15 Hier wird die Abstimmung der Buchung den größten Einfluss auf den Durchsatz haben. Sie können auch Hot Spots für den Durchsatz identifizieren, indem Sie Thread-Dumps (bei java-basierten Anwendungen) wiederholt durchführen.