mekakic
2011-03-30, 13:44:28
Wenn es auf jedes bißchen Performanz ankommt, kann es Vorteile bringen innerhalb von Funktionen Variablen als static zu markieren?
void foo()
{
static uint16_t var0 = 0;
uint16_t var1 = 0;
var0 = 42;
var1 = 43;
}
Wird var0 jetzt global angelegt und aber mit dem Scope auf foo()? D.h. bei mehrfachem Aufrufen landet immer nur wieder var1 auf dem Call-Stack? Kann man dadurch Performanz erhöhen, einfach indem man das erneute Ablegen auf dem Stack vermeidet und die Variablen schon im Speicher hat (aber eben mit dem Vorteil der begrenzten Sichtbarkeit)? Unter der Vorraussetzung, dass ich genügend Speicher habe aber eher mit der Laufzeit Probleme?
Bringt das was? Oder muß es dazu erst was größeres sein? Lokale Arrays, die man zum Beispiel nicht global definieren möchte?
void foo()
{
static uint16_t var0 = 0;
uint16_t var1 = 0;
var0 = 42;
var1 = 43;
}
Wird var0 jetzt global angelegt und aber mit dem Scope auf foo()? D.h. bei mehrfachem Aufrufen landet immer nur wieder var1 auf dem Call-Stack? Kann man dadurch Performanz erhöhen, einfach indem man das erneute Ablegen auf dem Stack vermeidet und die Variablen schon im Speicher hat (aber eben mit dem Vorteil der begrenzten Sichtbarkeit)? Unter der Vorraussetzung, dass ich genügend Speicher habe aber eher mit der Laufzeit Probleme?
Bringt das was? Oder muß es dazu erst was größeres sein? Lokale Arrays, die man zum Beispiel nicht global definieren möchte?