Methoden inline implementieren - Vor-/Nachteile?



  • Da ich grad dabei bin mir C++ etwas genauer anzuschauen, treten natürlich öfter mal Fragen auf, die geklärt werden müssen.

    So steht in dem jetzigen Tutorial, das die Definition per Inline schneller ist, als eine extra Definition.

    Nun meine Fragen dazu:

    Um wieviel schneller ist es?
    Was für sonstige Vorteile gibt es?

    Was für Nachteile (ist es z.B. nur für x Zeilen Code schneller, usw.)?

    Soweit, danke 🙂



  • Inline Funktionen sind schneller weil sie nicht aufgerufen werden ( also kein overhead für Funktionsaufruf ). Ihr Inhalt wird bei Benutzung jedesmal als Ganzes in den Code kopiert. => Erzeugter Code wird grösser.
    Kurt



  • Kann man da irgendwelche prozentualen Angaben machen (Größenzuwachs/Geschwindigkeitszuwachs)?

    Wäre mal interessant zu wissen. 😉



  • Nachteil:
    - Kenne keinen debugger, der es hinbekommt inline-funktionen zu debuggen. Kann nervig sein.
    - Meines Wissens nach kann man dem Compiler nur einen Vorschlag machen indem man je nachdem ein inline davorschreibt. Dann bekommt man je nach Compiler vielleicht eine Warnung falls es nicht klappt. Ist aber kein Muss.



  • UNeverNo schrieb:

    So steht in dem jetzigen Tutorial, das die Definition per Inline schneller ist, als eine extra Definition.

    das ist falsch. es gibt praxsrelevanten code, wo inline das programm verlangsamt.

    Um wieviel schneller ist es?

    schlimmstenfalls 10% langsamer, schätze ich. bestenfalls sauviel schneller ohne grenze nach oben.

    Was für sonstige Vorteile gibt es?

    wenn sinnvoll eingesetzt, kleinere exe-datei. der compiler sieht, was passiert und kann optimieren, statt blind aufzurufen. hier ist auch das enorme performancezugewinnpotenzial zu sehen.

    Was für Nachteile (ist es z.B. nur für x Zeilen Code schneller, usw.)?

    läßt sich nicht so pauschal sagen.



  • Auf die FAQ wird ge*****.

    inline-FAQ


Anmelden zum Antworten