SA9

...

...


L. H.
Diese Lernkarten bieten einen umfassenden Überblick über Performance-Testing und -Optimierung in der Softwareentwicklung. Sie behandeln zentrale Konzepte wie Systemtests, Objektoptimierung und verschiedene Testmethoden, darunter Load, Stress und Volume Testing. Die Karteikarten erläutern auch Entwurfsmuster wie Flyweight und Prototype, die zur Leistungsverbesserung beitragen, sowie die Bedeutung von Performance-Metriken und Optimierungsstrategien. Entwickler und Ingenieure profitieren davon, um effizientere und robustere Software zu erstellen.
Flashcards
15
Students
0
Language
German
Category
Computer Science
Level
Other
Created / Updated
16.07.2016 / 16.07.2016

Flashcards

Welche Aufgaben müssen noch erledigt werden wenn die eigentliche Implementierung abgeschlossen ist?

  • Performance Optimierung
  • Robustheit
  • Schutz (Lizenzmechanismen, Verschleierungen, Sicherheit)
  • Dokumentation
  • Installer

Nennen Sie vier Performance Metriken.

  • Durchsatz
  • Antwortzeit
  • Skalierbarkeit
  • Speicherverbrauch

Nennen Sie drei Problematiken, die auftreten können und gegen Optimierung sprechen.

  • Funktionierenden Code zu optimieren führt womöglich dazu subtile Fehler einzuführen
  • Code wird schwerer verständlich und schwerer wartbar
  • Optimierung kostet Zeit und bringt oft nur geringen Performance Gewinn
  • Optimierung von Code für eine spezifische Plattform kann diesen auf einer anderen Plattform verschlimmern

Warum ist es wichtig, den Programmcode auf Performance zu optimieren?

  • Limitierte Ressourcen (CPU Zyklen, Speicher, Netzwerkbandbreite)
  • In Java idR. Geschwindigkeit das Hauptproblem
  • In Embedded-Systems ist der Speicher das Hauptproblem
  • In verteilten Systemen kann Netzwerk-Bandbreite ein großes Problem sein

Welche allgemeinen Vorschriften sind bei Optimierung zu beachten?

  • Zuerst das System bauen, anschließend Optimieren
  • Engpässe meist dort, wo man sie nicht erwartet
  • Nur das verbessern, was einen Gewinn bringt
  • Verbesserung der Leistung führt idR zu einer Abnahme der Klarheit des Designs
  • Große Performance-Verbesserungen sind eine Frage der zugrunde liegenden Architektur

Welche Entwurfsmuster tragen zur Optimierung der Leistung bei?

  • Flyweight:
  • Object Pool
  • Prototype
  • Proxy

Nennen Sie 3 Entwurfsmuster zur Performance Verbesserung und kategorisieren Sie diese hinsichtlich der Leistungsoptimierung

  • Flyweight: reduziert den Speicherverbrauch
  • Object Pool: reduziert den Speicherverbrauch
  • Prototype: beschleunigt die Objekterzeugung
  • Proxy: beschleunigt die Kommunikationsgeschwindigkeit

Was versteht man unter einem Flyweight Pattern und nennen Sie ein Beispiel dazu.

  • wird verwendet, wenn eine große Anzahl von Objekten benötigt wird,
  • die sich bestimmte variable Informationen teilen,
  • und eine herkömmliche Implementierung unverhältnismäßig viele Ressourcen erfordert
    —> Speicheroptimierung
  • Bsp.: Moderne Web Browser
    • um zu verhindern, dass zweimal dasselbe Bild geladen wird 
    • Es gibt ein Flyweight-Objekt für jedes bereits geladene Bild
    • Das eigentliche Bild wird nur referenziert

Nennen Sie drei Arten des Performance Testing

  • Load Testing
  • Stress Testing
  • Volume Testing
  • Endurance Testing
  • Spike Testing

Wie kann Optimierung durch Compilerunterstützung erreicht werden?

  • Dem Compiler mehr Informationen geben
    - Final Variablen nutzen
    - Static benutzen

Was versteht man unter einem Unit Testing bezogen auf Performance.

  • JUnit misst die Zeit für jeden Test unter Verwendung des Decoder Patterns
    • aber: Unit Test wird auf CPU ausgeführt & in Java compeliert
      —> diese Zeit fließt mit ein; deshalb nicht 100& korrekt
    • sonst ziemlich gut für Performance Testing: einmal implementiert; wiederholbar
  • Unit-Tests erfolgen während der Entwicklung
    • konzentrieren sich auf die korrekte Funktionalität der kleinsten prüfbaren Teile
    • nicht auf nicht-funktionale Aspekte & nicht auf die Belastbarkeit konzentriert

Welche Nachteile haben Performance Messungen mit JUnit Tests?

  • Messgröße ist Zeit und nicht CPU-Zyklen
  • Garbagecollection und andere Aufgaben haben Einfluss
  • Speicher wird nicht berücksichtigt

Was ist das Ziel von Performance Testing?

  • Ziel ist es, den Engpass des Systems zu finden und zu beheben

Wofür wird Stress Testing verwendet?

  • Jedes System hat eine Kapazitätsbeschränkung
  • Wenn die Last über die Grenze geht, wird es sehr langsam reagieren & ggf. Fehler erzeugen
    —> Stress-Test soll die Kapazitätsgrenze des Systems finden
    —> sodass nachvollzogen werden kann, zu welchem Zeitpunkt das System beeinträchtigt ist

Wie wird die Performance durch Prototypen verbessert?

  • Die neue Erstellung eines Objekts wird vermieden
  • Dafür ein Klon eines vorhandenen Objektes erzeugt
    —> Geschwindigkeitsoptimierung

Study