AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Performance-Test: Assigned() oder ungleich nil?

Performance-Test: Assigned() oder ungleich nil?

Ein Thema von Nogge · begonnen am 3. Apr 2007 · letzter Beitrag vom 3. Apr 2007
Antwort Antwort
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 15:47
Hallo Community,
Die Frage klingt vllt übertrieben penibel, aber ich möchte gern aus reiner Neugierde wissen, ob es einen (Geschwindigkeits-)Unterschied zw. den folgenden Schreibweisen gibt:
Delphi-Quellcode:
if Assigned(TestObj) then
  //
if (TestObj <> nil) then
  //
mfg Nogge
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 15:51
Weil es bei Assigned(...) nen jump auf die Funktion gibt sollte das langsamer sein... es sei denn, der Compiler optimiert das schlauerweise.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#3

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 15:55
Jo, das denke ich auch, allerdings WEIß ich es nicht. Ich hoffe daher auf Personen hier im Forum, die sich intensiver mit der Materien auskennen und eine konkrete Antwort geben können.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.900 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 15:55
Zitat von cruiser:
Weil es bei Assigned(...) nen jump auf die Funktion gibt sollte das langsamer sein... es sei denn, der Compiler optimiert das schlauerweise.
Schon mal die Implementierung in der System.pas gefunden? Das ist AFAIK Compiler-Magic! Und ab BDS 2006 (oder wars BDS 2005) kann der Compiler eh Inline-Functions.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 16:03
Der erzeugte Assembler-Code ist genau der gleiche:

Delphi-Quellcode:
test ebx, ebx
jz +$0d
(Wobei der zu überprüfende Pointer in ebx liegt und +$0d das Ende der darauffolgenden If-Anweisung ist.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#6

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 16:06
Ah, wunderbar, 3_of_8 !
Solch eine kompetente Antwort wollte ich hören^^
Nur noch eins: Was bedeutet +$0d nach dem Jump(if)Zero-Befehl?
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Performance-Test: Assigned() oder ungleich nil?

  Alt 3. Apr 2007, 16:12
Okay.. bullshit meinerseits... aber ich war mir sicher, die Func gesehn zu haben
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 14:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf