Textersetzung von 25 Zeilen



  • Hallo liebe Gemeinde,

    ich habe etwa 30 Zeilen Programmcode den ich durch eine kurze Zeile ersetzen möchte. Ist dies in C# möglich?

    Eine Funktion möchte ich nicht schreiben, da diese 25 Zeilen sehr oft aufgerufen werden und ich jeden Takt sparen möchte.

    Vielen Dank schonmal!



  • Nein inlines oder Präprozessordirektiven die über #if #elif hinausgehen kennt c# nicht: nimm eine Funktion, der Compiler wird schon wissen, was inline sein wird und was nicht.





  • Wenn die 30 Zeilen dupliziert werden -> Ab in einer Methode (DRY). An sonsten kann ich mich meinem Vorredner anschließen, Methoden kosten doch gar nichts, und dort zu "Optimieren" ist einfach überflüssig ->

    Wenn es dem CCD also in den Fingern zuckt, weil er denkt, er könne doch noch ein Quentchen Performance durch eine Optimierung herausholen, dann sollte er mindestens zweimal überlegen. Zum einen würde er dadurch die Verständlichkeit verschlechtern, zum anderen aber ist es wahrscheinlich, dass solche Optimierung aus mehreren Gründen gar nicht nötig ist.
    ...
    PS: Wenn denn entgegen allen Warnungen und Bedenken gerade eine Performanceoptimierung unumgänglich ist, dann sollte sie immer nur aufgrund einer detaillierten Analyse mit einem Profiler begonnen werden. Denn nur wer mit einem Profiler nachvollziehbar Performanceengpässe lokalisiert hat, kann während und nach der Optimierung prüfen, ob und inwiefern er sie geweitet hat.

    Quelle: Vorsicht vor Optimierungen.



  • Guten Abend,

    schade, dass dies nicht möglich ist. Dass diese Aufgabe der Compiler übernehmen wird bin ich mir auch nicht 100%-ig sicher. Schließlich führt eine Funktion in diesem Falle - im Gegensatz zu einer Textersetzung - zu gunsten des Programmspeicherplatzes und zu Lasten der Performance.

    Ein Nachteil durch Programmunkenntlichkeit wäre auch nicht vorhanden, da ich es mir im idealfall wie ein Aufruf einer Funktion vorstelle (nur dass der Compiler eben keinen extra Sprung in die Funktion verschwendet, sondern einfach die einzelnen Befehle hintereinander abarbeitet.)

    Aber wenns nicht geht, gehts halt nicht. Danke nochmal an Euch!



  • Was glaubst du wie teuer der Sprung in einer Methode ist?



  • Ein seltener Gast schrieb:

    Schließlich führt eine Funktion in diesem Falle - im Gegensatz zu einer Textersetzung - zu gunsten des Programmspeicherplatzes und zu Lasten der Performance.

    Und woher willst Du das wissen? Moderne Compiler können sehr gut optimieren... Idr deutlich besser als der durchschnittliche Programmierer...



  • Okay, okay, habs gecheckt. Danke an euch!


Anmelden zum Antworten