AGB  ·  Datenschutz  ·  Impressum  







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

Geschwindigkeit von Schleifen

Ein Thema von Dennis07 · begonnen am 10. Dez 2014 · letzter Beitrag vom 11. Dez 2014
Antwort Antwort
Seite 1 von 3  1 23      
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
482 Beiträge
 
Delphi 11 Alexandria
 
#1

Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:16
Tach zusammen,
aus reinem Interesse wollt ich mal fragen, welche Schleifen schneller ausgeführt werden für welche bedingungen als andere und wieso. Ich meine, ich hätte vor ungefähr nem Jahr schonmal so etwas gelesen, erinnere mich allerdings nicht mehr an den genauen Thread oder Autor. Auf Google habe ich auch nichts gefunden.
Nur zu testen, was schneller ist, wäre erstens ziemlich ungenau, aufwändig und würde mir außerdem keinen verständlichen Grund liefern.
Wäre nett, wenn jemand, der eine Antwort weiß, sie mir sagen könnte oder zumindestens weiß, wie man das herausfindet, bzw. wo man es findet.

MFG
Dennis
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:24
Von welchen Schleifen sprichst Du? Gibt mal Beispiele.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
482 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:26
na For-To, For-Downto, For-In, While-Do, Repeat-Until, If-Then und Case-Of...
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:29
Die Geschwindigkeit von Schleifen ist ein erster Näherung "hinreichend schnell" und in zweiter "egal".

Eine for-in Schleife ist vermutlich einen *Hauch* langsamer, da da einige Funktionsaufrufe versteckt sind.
Es ist sinnvoller, sich auf andere Sachen zu konzentrieren:
1. Die Anweisungen in der Schleife
2. Brauche ich die Schleife? Kann ich eine bessere Datenstruktur einsetzen, die schneller ist und auf die Schleife verzichtet?

P.S.: Schleifen führen Anweisungen 0 bis x fach aus, if-then und case-of sind daher keine Schleifen.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
482 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:31
Ja, das stimmt natürlich. Ich schrieb ja auch, dass es im Grunde nur eine nice-to-know Frage ist. Ich wollte halt nur wissen, wie die Schleifen vom Compiler ausgewertet werden und was für ein Maschinencode da erzeugt wird.
Natürlich ist es weitestgehend irrelevant für den alltäglichen Gebrauch...

PS: Ja, allerdings wäre es auch nett zu wissen, ob der CASE und IF code ähnlich bzw. identisch ist und ab wievielen Aufrufen CASE wohl schneller ist...
Dennis
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:37
Du solltest das einfach selbst analysieren: Der Maschinencode ist in Delphi sichtbar und wie man Zeitmessungen macht, sollte Dir spätestens nach dem Bemühen der SuFu klar sein.

Los, ran ans Werk!
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
482 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:38
Ja, genau das war ja meine Frage:
Wie kann ich mir den Quelltext, der bei einer For-Schleife beispielsweise erzeugt wird, anzeigen lassen?
Dennis
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:45
Das Tastenkürzel kenn ich nicht auswendig, aber du solltest einen Breakpoint auf die Schleife setzen und dann im Menü nach 'Assembleransicht' o.ä. schauen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.120 Beiträge
 
Delphi 12 Athens
 
#9

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:46
If-Then und Case-Of...
Das sind keine Schleifen!

Und ansonsten ist alles in etwa gleich schnell.
Außerdem wählt man den Typ der Schleife anhand der Aufgabenstelltung aus und nicht wegen der Geschwindigkeit.


Intern bestehen alle Schleifen auch nur aus IF-THEN und GOTO ... nur die Abbruchbedingungen unterscheiden sich.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 10:57
If-Then und Case-Of...
Das sind keine Schleifen!
Och menno.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 10:46 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