AGB  ·  Datenschutz  ·  Impressum  







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

Optimierter code?

Ein Thema von Gruber_Hans_12345 · begonnen am 16. Apr 2007 · letzter Beitrag vom 16. Apr 2007
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#1

Optimierter code?

  Alt 16. Apr 2007, 14:54
gibt es eigentlich wo ne übersicht, wie man auch in delphi code optimieren kann?

habe ja öfters mal wo folgendes
Delphi-Quellcode:
function TDBFormRuntime.GetCopyID : integer;
begin
    Result := -1;
    if assigned(fCopyData) then
        Result := fCopyData.GetCopyID;
end;
und dann mal auf speed getestet und da ist nun mal
Delphi-Quellcode:
function test2(value : Boolean) : integer;
begin
    Result := 12;
    if value then
        Result := 11;
end;
schneller als
Delphi-Quellcode:
function test3(value : Boolean) : integer;
begin
    if value then
        Result := 11
    else
        Result := 12;
end;
(zwar nicht um viel statt 3042ms braucht er 2262ms - bei ca 1000000000 aufrufe)

und bringt natürlich nur dann was, wenn value true ist, dann ist er in der ersten funktion schneller (vermute mal aufgrund vom pipelining der cpu) ... gibt es sonst noch code optimierungen, die man schnell wo einbauen kann?

oder ist das gar ein ganz anderer effekt hier?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
16. Apr 2007, 15:43
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Es geht um Delphi.
Christian V.

Registriert seit: 15. Apr 2007
5 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Optimierter code?

  Alt 16. Apr 2007, 16:33
Diese Seite scheint Informationen über Code-Optimierung bezüglich Delphi zu enthalten.
http://www.pascalgamedevelopment.com/library/hpd_ob/
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Optimierter code?

  Alt 16. Apr 2007, 17:35
Ich versuche (wenn es möglich ist) den Wert Result so spät als möglich zu setzen
um dem Compiler das Register AX freizuhalten.
Das bringt natürlich nur etwas, wenn auch Code vorhanden ist, der Nutzen aus dem
freien Register ziehen kann.
Ausserdem muss dann auch die Optimierung angeschaltet sein. (wie war die Einstellung bei deinen Tests?)
Andreas
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.439 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Optimierter code?

  Alt 16. Apr 2007, 17:49
Optimierung eingeschaltet

also vom assembler code her müsste eigentlich test3 schneller sein

kann man irgendwie den code aus dem CPU Fenster kopieren?

Code:
test2:
005EC598 BA0C000000       mov edx,$0000000c
005EC59D 84C0             test al,al
005EC59F 7505             jnz +$05
005EC5A1 BA0B000000       mov edx,$0000000b
005EC5A6 8BC2             mov eax,edx
005EC5A8 C3               ret
005EC5A9 8D4000           lea eax,[eax+$00]     << was sollte das machen (ist das ein Align auf 4 Byte?)
test3:
005EC5AC 84C0             test al,al
005EC5AE 7406             jz +$06
005EC5B0 B80B000000       mov eax,$0000000b
005EC5B5 C3               ret
005EC5B6 B80C000000       mov eax,$0000000c
005EC5BB C3               ret
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:24 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