AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 21:17

Parameter dieser Suchanfrage:

Suche in Thema: Was ist schneller, Funktion oder Prozedure?
Suche alle Beiträge, die von "SMO" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 4 von insges. 4 Treffern
Suche benötigte 0.006s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    Re: Was ist schneller, Funktion oder Prozedure?

      Delphi
      by SMO, 28. Okt 2005
    Nein. Und das ist kein grober Unfug. Der Compiler erkennt, dass "ergy" im Folgenden gar nicht mehr benutzt wird und auch dass das per inlining eingefügte y nichts tut, was auf den Rest des Programms Auswirkungen haben könnte. Also kann man sowohl den Aufruf von y als auch ergy hier ersatzlos streichen.


    Inkonsequent ja, aber auf andere Weise als du vielleicht meinst. Wenn man x mit inlining...
  • Forum: Object-Pascal / Delphi-Language

    Re: Was ist schneller, Funktion oder Prozedure?

      Delphi
      by SMO, 28. Okt 2005
    Nein. Jetzt zum dritten Mal: :wall:
    Ein "var" Parameter erzwingt eine Speichervariable. Da ist dann nichts mehr drin mit Registeroptimierung und so. Wenn man also solche Tests macht, dann bitte den einzelnen Testfällen (hier der Prozedur und der Funktion) jeweils ihre eigenen lokalen Variablen geben.

    var
    i: Integer;
    begin
    x(i);
    i := y;
    end.
    So kann es ja nichts mit der Optimierung...
  • Forum: Object-Pascal / Delphi-Language

    Re: Was ist schneller, Funktion oder Prozedure?

      Delphi
      by SMO, 28. Okt 2005
    Eben. Deswegen bring ein Konkretes ASM-Beispiel kaum etwas. Je nach Kontext des Funktionsaufruf kann der generierte Code auch so aussehen:
    function y: Integer;
    ----------------------
    CALL y
    XOR eax, eax // Inhalt von eax 0 setzen
    RET // Rücksprung

    MOV esi,eax // Zuweisung an lokale Variable erg, die sich nun im Register esi befindet
    Das wäre nochmal ein...
  • Forum: Object-Pascal / Delphi-Language

    Re: Was ist schneller, Funktion oder Prozedure?

      Delphi
      by SMO, 28. Okt 2005
    Jein. Da kommt die Optimierung des Delphicompilers ins Spiel. Wie du vielleicht weißt, repräsentieren Variablen normalerweise Speicherzellen im RAM. Wenn ich also eine Zuweisung wie "erg := 2" habe, dann wird eine bestimmte Speicheradresse, die für "erg" reserviert wurde, mit dem Wert 2 gefüllt. Nun können Speicherzugriffe allerdings relativ viel Zeit kosten, da der Hauptspeicher ziemlich viel...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=SMO&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=55903
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz