Leistungsbewertung und Profiling

Welche Eigenschaft von Profilern nach dem Sampling-Verfahren ist richtig?

  1. ASie zeichnen ohne ein einziges Auslassen jeden Eintritt und Austritt aller Funktionen auf
  2. BDas Programm wird in festen Abständen unterbrochen, die gerade ausgeführte Stelle aufgezeichnet, und häufig aufgezeichnete Stellen gelten als zeitintensive Stellen
  3. CSie lesen nur den Quellcode des Programms, ohne es auszuführen
Antwort und Erläuterung anzeigen

Antwort: B. Das Programm wird in festen Abständen unterbrochen, die gerade ausgeführte Stelle aufgezeichnet, und häufig aufgezeichnete Stellen gelten als zeitintensive Stellen

Beim Sampling-Verfahren werden durch Interrupts von Timern oder Leistungszählern z. B. einige tausend Mal pro Sekunde die Stelle des gerade ausgeführten Befehls (und die Aufrufkette) aufgezeichnet. Je mehr Zeit eine Stelle beansprucht, desto häufiger wird sie aufgezeichnet, sodass statistisch erkennbar ist, wo es schwer ist. Da das Programm nicht verändert wird, ist die Messverzögerung gering und es wird in einem Zustand nahe der Realität gemessen, doch die genaue Anzahl sehr kurzer Verarbeitungen ist nicht erkennbar.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Aussage zu Profilern nach dem Instrumentierungsverfahren, bei dem Code zur Zeitmessung am Eingang und Ausgang von Funktionen eingefügt wird, ist richtig?
  2. Welche Beschreibung eines Hotspots in der Leistungsanalyse von Programmen ist richtig?
  3. Wie ist ein Flame Graph zur Darstellung von Profilergebnissen zu lesen?
  4. Was ist ein Beispiel für Größen, die mit den in die CPU integrierten Leistungszählern (PMU) gezählt werden können?
  5. Die Messung mit Leistungszählern ergab für ein Programm ein sehr niedriges IPC (Befehle pro Zyklus) von 0,3 und viele Fehlzugriffe im letzten Cache-Level. Welche Kombination aus wahrscheinlichster Situation und Gegenmaßnahme ist richtig?