Wieviel Performance kostet Funktionsüberladung und kostet sie überhaupt Performance?



  • Wenn man eine rekursive Funktion hat, die sich selbst aufruft, aber 4 weitere rekursive Hilfsfunktionen braucht, die man so schreiben könnte,
    daß
    A) die Hilfsfunktionen einen anderen eigenen Funktionsnamen tragen
    oder
    😎 daß die Hilfsfunktionen unter Ausnutzung der Funktionsüberladung und Tatsache, daß die Hilfsfunktionen andere Parameter haben den selben Funktionsnamen tragen.

    Was wäre dann schneller, A oder B?
    Sprich, kostet es Zeit, wenn das Programm anhand den Parametern herausfinden muß, welche Funktion aufgerufen werden soll?

    Beispiel:

    int funcMain(){
      func1(int);
      func2(double);
      func3(int, int);
      func4(double, double);
    }
    

    vs:
    [code]
    int func(){
    func(int);
    func(double);
    func(int, int);
    func(double, double);
    }
    [/quote]

    Alle Funktionen sind rekursiv, aber bei letzterem Beispiel tragen sie alle den gleichen Namen. Bei ersterem Beispiel sind es Funktionen mit unterschiedlichem Namen.



  • So, jetzt sollte es klappen.

    int func(){
      func(int);
      func(double);
      func(int, int);
      func(double, double);
    }
    


  • Funktionsüberladung wird zur Compilezeit aufgelöst, also gibt es zur Laufzeit keinen unterschied.


Anmelden zum Antworten