Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Welche Funktion ist schneller? (https://www.delphipraxis.net/40943-welche-funktion-ist-schneller.html)

Kedariodakon 23. Feb 2005 16:21


Welche Funktion ist schneller?
 
Welche Art Funktion ist schneller? :gruebel:

Delphi-Quellcode:
Function IsEqual1( Wert1, Wert2: Boolean ): Boolean;
Begin
  Result := Wert1 = Wert2;
End;

Function IsEqual2( Wert1, Wert2: Boolean ): Boolean;
Begin
//  Result := Wert1 And Wert2;
  Result := Not( Wert1 Xor Wert2 );
End;
Ich würde ja sagen IsEqual2 bin mir damit aber nicht sicher... :zwinker:


Bye

glkgereon 23. Feb 2005 16:22

Re: Welche Funktion ist schneller?
 
teste es doch aus....

führ es jeweils 1 millionen mal aus mit zufallswerten zwischen 1 und 100 und mess die zeit....

Sprint 23. Feb 2005 16:25

Re: Welche Funktion ist schneller?
 
Mein Delphi macht aus beiden Funktionen den selben Assembler. Also sind beide gleich schnell.

Edit: \\Ups.. macht er doch nicht.

jfheins 23. Feb 2005 16:30

Re: Welche Funktion ist schneller?
 
Dir ist aber schon klar, dass die Funktionen nicht dasselbe machen oder ?

Die erste gibt bei 0, 0 TRUE zurück die zweite FALSE.

Um das gleiche zu machen, müsste sie so aussehen:
Delphi-Quellcode:
Function IsEqual1( Wert1, Wert2: Boolean ): Boolean;
Begin
  Result := not (Wert1 xor Wert2);
End;

Kedariodakon 23. Feb 2005 16:36

Re: Welche Funktion ist schneller?
 
Man bin ich schusselig jfheins hat Recht, damit müsste dann auch Funktion 1 schneller sein...

Bye

Ultimator 23. Feb 2005 16:49

Re: Welche Funktion ist schneller?
 
Bei mir ist Funktion 2 anscheinend schneller, allerdings leifert sie nur ungefähr die Hälfte der true-Werte von Funktion 1 zurück :gruebel:

jim_raynor 23. Feb 2005 17:02

Re: Welche Funktion ist schneller?
 
Zitat:

Zitat von Ultimator
Bei mir ist Funktion 2 anscheinend schneller, allerdings leifert sie nur ungefähr die Hälfte der true-Werte von Funktion 1 zurück :gruebel:

Ist doch auch logisch.

False And False ergibt false, aber (false = false) ergibt true.

Deshalb der einwand von jfheins.

Ultimator 23. Feb 2005 17:08

Re: Welche Funktion ist schneller?
 
Ich hab ja auch die neue Funktion IsEqual2 genommen, is aber trotzdem so ;-)


//edit Kommando zurück, hab die falsche Funktion in meinem Programm verändert :wall:

Pseudemys Nelsoni 23. Feb 2005 17:19

Re: Welche Funktion ist schneller?
 
Ich denke bei soetwas popeligem ist es unsinnig so ein trarar zu machen

Oxmyx 23. Feb 2005 17:44

Re: Welche Funktion ist schneller?
 
Zitat:

Zitat von Pseudemys Nelsoni
Ich denke bei soetwas popeligem ist es unsinnig so ein trarar zu machen

Zustimmung. Wenn es wirklich zeitkritisch ist, dann würd ich wegen diesem Minicode sowieso keinen Funktionsaufruf einbauen.

stefan2005 23. Feb 2005 17:48

Re: Welche Funktion ist schneller?
 
hi,
Ja stimmt.
ich schätze mal, dass das Springen zur Funktion und zurück viel länger dauert als ein paar so kleine Anweisungen/kleine Anweisung !

cu,
stefan2005


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz