Tempo von Array Zugriffen ?



  • Hi Leute !

    int xyz[3];
    

    Wenn ich jetzt wie folgt zugreife...

    [...]
     int t= xyz[0] + xyz[2] + [...hier ganz viele weitere Arrayzugriffe auf xyz...]
    [...]
    

    ...und das ganze wiederum auf extrem oft, wäre es dann schneller wenn
    ich ohne Array arbeiten würde ?

    int x;
    int y;
    int z;
    
    [...]
     int t= x + z + [...hier ganz viele weitere Zugriffe auf x, y oder z...]
    [...]
    

    Meine Frage ist also ob der Arrayzugriff langsamer ist
    als der direkte Zugriff auf eine Variable ? Also ich
    kann mir gut vorstellen das er langsamer ist wenn ich
    als Arrayindex eine Variable benutzen würde, aber wie
    ist das wenn ich eine Konstante (hier 1...2) verwende ?
    Ersetzt das irgendwie der Compiler beim Bauen schon
    durch einen Direktzugriff der genauso schnell ist wie
    ein Variablenzugriff ? 😕

    Ok ich hoffe jemand kann mir da weiterhelfen, danke ! 🙂



  • Vermutlich wird der Compiler den Code so optimieren, dass kein Unterschied besteht. Das ist ja nicht allzu schwierig.

    Aber warum stellst du dir die Frage überhaupt? Es ist immer am besten, so zu codieren, dass der Code gut funktioniert (also gut lesbar ist, wartbar ist usw.), und dem Compiler den Rest zu überlassen. Wenn du feststellst, dass dein Programm zu langsam ist, kannst du dir immer noch Gedanken machen. Ich würde sagen, dass du bei einem so kleinen Array nie einen Geschwindigkeitsnachteil feststellen wirst.


Anmelden zum Antworten