AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zur inline Optimierung

Offene Frage von "jaenicke"
Ein Thema von atc · begonnen am 5. Jun 2012 · letzter Beitrag vom 5. Jun 2012
 
atc

Registriert seit: 3. Dez 2010
17 Beiträge
 
#1

Frage zur inline Optimierung

  Alt 5. Jun 2012, 02:47
Delphi-Version: XE2
Hallo,

die folgenden Codes sollten doch eigentlich von der Laufzeit her nach dem Compilieren im Release Modus mit Optimierung identisch sein, oder nicht?
Delphi-Quellcode:
procedure p1(const s:string);
var i,l:integer;
begin
  i:=1;
  l:=length(s);
  while i<=l do
  begin
    //...
    inc(i);
  end;
end;

procedure p2(const s:string);

  function neof(i,l:integer):boolean;inline;
  begin
    result:=i<=l;
  end;

var i,l:integer;
begin
  i:=1;
  l:=length(s);
  while neof(i,l) do
  begin
    //...
    inc(i);
  end;
end;
Sind sie aber leider nicht. p2 ist ungefähr 3x langsamer. Delphi erkennt das Schlüsselwort inline zwar, denn ohne dieses ist p2 ungefähr 10x langsamer.
Aber warum macht der Compiler aus p2 nicht einfach p1? Das verstehe ich gerade nicht. Es muss doch nur das Result beim Funktionsaufruf eingesetzt werden.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz