Handbuch zur dynamischen Ablaufverfolgung in Solaris

Erzeugen von Spekulationen

Die Funktion speculation() reserviert Speicherplatz für einen spekulativen Puffer und gibt eine Spekulations-ID zurück. Die Spekulations-ID dient für die nachfolgenden Aufrufe der Funktion speculate. () Spekulative Puffer sind eine endliche Ressource: Wenn zum Zeitpunkt des Aufrufs von speculation() kein spekulativer Puffer verfügbar ist, wird eine ID von Null zurückgegeben und der entsprechende DTrace-Fehlerzähler erhöht. Eine ID von Null ist immer ungültig, kann aber an speculate(), commit() oder discard() übergeben werden. Schlägt ein Aufruf von speculation() fehl, wird eine dtrace-Meldung wie in folgendem Beispiel generiert:


dtrace: 2 failed speculations (no speculative buffer space available)

Der Standardwert für die Anzahl spekulativer Puffer ist 1, kann aber bei Bedarf auf einen höheren Wert eingestellt werden. Weitere Informationen dazu finden Sie unter Spekulationsoptionen und Abstimmung.