@rantanplan99: Ich kann kein Basic, ich weiß nur dass es sowohl in Pascal als auch in C++ einen Befehl namens goto gibt.
Zitat:
Das ist schon richtig, bezieht sich aber nicht nur auf GOTOs, sondern auf jede Art von Sprüngen, also auch Funktionsaufrufe.
Der Grund ist folgender: Wird eine Anweisung ausgeführt, ist es sehr wahrscheinlich, dass die ncächsten Anweisungen ebenfalls ausgeführt werden. Deshlab werden die in den Cache vorgeladen.
Erfolgt jetzt ein Sprung, sind auf einmal nicht die Daten im Cache, die als nächstes gebraucht werden, sondern andere.
Das ganze Konzept des Vorladens nennt sich Pipelining und die Löcher nennt man Bubbles. Und Intels "Hyperthreading" (bei AMD gibts das auch, heißt nur anders) führt jetzt Code aus, während die Daten anderswo geladen werden.
Zumindest hab ich das so in meinen Rechnerarchitektur-Vorlseungen verstanden
wow...also bei jedem Funktionsaufruf sind die Daten des Caches sinnlos und müssen neu geladen werden?
das ist ziemlich heftig