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
Dennis07

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

AW: Geschwindigkeit von Schleifen

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

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

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 11: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 11:57
If-Then und Case-Of...
Das sind keine Schleifen!
Och menno.
  Mit Zitat antworten Zitat
Dennis07

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

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 12:26
Danke bis hierher schonmal, allerdings könntet ihr mir vielleicht sagen, wie man herausfindet, woraus genauer die von dem Compiler erzeugten Schleifenquelltexte bestehen?
Denn bei der Ausführung des aktuellen Befehls, wird die For-Schleife beispielsweise als solches ausgeführt und es wird nicht zu einem Quelltext gesprungen.
Dennis
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.191 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 12:35
Beispielbild im Anhang.

Schau mal unter Ansicht -> Debug-Fenster -> CPU-Ansicht


Wir sehen dass eine for-downto-Schleife in Assembler irgendwie anders (kürzer) ist als eine for-to.
Angehängte Grafiken
Dateityp: png disassembly.png (52,1 KB, 43x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 12:40
Habs auch mal schnell ausprobiert.
Angehängte Grafiken
Dateityp: png asm.png (13,2 KB, 50x aufgerufen)
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Geschwindigkeit von Schleifen

  Alt 10. Dez 2014, 12:32
Selbst wenn repeat .. until aus irgendeinem Grund schneller sein sollte als for .. do, würde ich hier (ua. aufgrund der Lesbarkeit des Codes) definitiv niemals optimieren. Solche Dinge sind meiner Meinung nach Compilersache!

Wie himitsu schon sagte sind es im Grunde genommen nur "gotos" (Jumps). Du solltest im Assembler Code Mnemonics wie JMP, JNZ, JE, JZ ... sehen (da gibts ne ganze Reihe). Bei for Schleifen wird irgendwo ein INC bzw. DEC zu finden sein und gelegentlich gehört auch noch ein CMP mit dazu. Kann man so generisch gar nicht sagen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  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 01:11 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