In C zeigt die Verwendung von statischen Variablen in einer Funktion, damit es schneller geht?

Meine Funktion aufgerufen wird, werden Tausende Male. Wenn ich will, um es schneller zu machen, wird die änderung der lokalen Funktions-Variablen static sein? Meine Logik dahinter ist, dass, da statische Variablen sind persistent zwischen Funktionsaufrufen, die Sie zugeordnet sind, nur die erste Zeit, und daher, jeder weitere Anruf wird nicht reserviert Speicher für Sie und wird schneller geworden, weil die Speicherreservierung Schritt ist nicht getan.

Auch, wenn die oben genannten wahr ist, dann wäre die Verwendung von globalen Variablen statt Parameter werden schneller zum weiterleiten von Informationen an die Funktion jedes mal aufgerufen wird? ich denke, dass Platz für Parameter zugeordnet ist auch bei jedem Aufruf, damit die Rekursion (das ist, warum die Rekursion verbraucht mehr Speicher), aber da meine Funktion nicht rekursiv ist, und wenn meine Argumentation richtig ist, dann ausziehen der Parameter wird in der Theorie machen Sie es schneller.

Ich weiß, diese Dinge, die ich tun möchte, sind schrecklich Programmierung Gewohnheiten, aber bitte, sagen Sie mir, wenn es klug ist. Ich werde es trotzdem versuchen, aber bitte geben Sie mir Ihre Meinung.

  • Nicht optimieren code VOR profiling!...
  • stackoverflow.com/questions/3730000/...
  • Tun in der Regel schlechte Dinge zu erreichen, die kaum marginale SpeedUp für eine Funktion, die aufgerufen wird Tausende Male ist eine wirklich schlechte Idee. Wenn Sie können, sparen Sie vielleicht 10ns pro Funktionsaufruf für eine Funktion, die aufgerufen wird Tausende Male...Sie gespeichert haben einige Vielfache von 10 Mikrosekunden, das ist trivial, es sei denn Sie arbeiten auf einem harten Echtzeit-system und haben ein entscheidendes problem mit der Zeit schneiden.
  • für alle, die darauf hindeutet, einen profiler: wo bekomme ich einen solchen? insbesondere eine für x86_64 GCC C.
InformationsquelleAutor salvador p | 2010-10-01
Schreibe einen Kommentar