AGB  ·  Datenschutz  ·  Impressum  







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

For-do Schleife mit Sprung

Ein Thema von F.W. · begonnen am 9. Dez 2003 · letzter Beitrag vom 16. Dez 2003
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#31

Re: For-do Schleife mit Sprung

  Alt 14. Dez 2003, 19:38
Der Fortschritt wird auch so weitergezeichnet. Was ich brauche ist halt irgendwas, was die Zeit "zählt".
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#32

Re: For-do Schleife mit Sprung

  Alt 14. Dez 2003, 19:43
dann mach deine Anzeige nicht von der Zeit abhängig, sondern von der Anzahl der untersuchten Zahlen
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#33

Re: For-do Schleife mit Sprung

  Alt 15. Dez 2003, 18:20
Die Zeit ist wichtig für mich, damit ich(weil ich ja noch dran rumm progge) weiß, welcher Quellcode besser(schneller) ist. Außerdem hat ja jeder Computer eine andere Geschwindigkeit.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#34

Re: For-do Schleife mit Sprung

  Alt 15. Dez 2003, 18:39
Zitat von Nailor:
Allerdings habe ich immer gedacht, dass Schleifen intern anders funktionieren, und Luckies Gebastel daher eh nicht funktioniert.
Luckies Code funktioniert, da ein Borland Mitarbeiter des Compiler-Teams diesen Spezialfall bedacht hat und dem Code-Optimierer dieses beigebracht hat. Was der Compiler in diesem Fall erzeugt ist eine nicht optimierte for-Schleife, bei der die Manipulation ohne Folgen (Endbedingung ausgeschlossen) möglich ist.

Zitat von d3g:
Wenn der Optimierer Lust dazu hat, ist das auch so. Dann wird das CX-Register als Schleifenvariable benutzt und der Sprung funktioniert mit dem LOOP-Befehl statt mit einem CMP- und einem JZ-Befehl (braucht 3 Takte weniger).
Das war mal zu 386-Zeiten so. Beim 486 ist der LOOP Befehl im Vergleich zu "DEC, JZ" eine lahme Schnecke. Selbst ein "CMP, JE" ist auf einem Pentium schneller. Dadurch ist es egal ob nun das ECX Register oder ein anderes freies als Zähler benutzt wird, was der Delphi-Compiler sich auch zu Nutze macht.


Noch eine Idee für die for-Schleife mit einem Step:
Delphi-Quellcode:
var
  i, ii: Integer;
begin
  for ii := 0 to (Count div 2 - 1) do
  begin
    i := ii * 2; // => SHL ist nicht gerade langsam
    // hier mit i arbeiten
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#35

Re: For-do Schleife mit Sprung

  Alt 15. Dez 2003, 18:57
Zitat von jbg:
Noch eine Idee für die for-Schleife mit einem Step:
Delphi-Quellcode:
var
  i, ii: Integer;
begin
  for ii := 0 to (Count div 2 - 1) do
  begin
    i := ii * 2; // => SHL ist nicht gerade langsam
    // hier mit i arbeiten
  end;
end;
*lol* kommt da nicht (Count div 2 - i) hin???
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#36

Re: For-do Schleife mit Sprung

  Alt 15. Dez 2003, 19:13
Zitat von phlux:
kommt da nicht (Count div 2 - i) hin???
Wieso sollte da i hinkommen?
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#37

Re: For-do Schleife mit Sprung

  Alt 16. Dez 2003, 13:34
Zitat von F.W.:
Die Zeit ist wichtig für mich, damit ich(weil ich ja noch dran rumm progge) weiß, welcher Quellcode besser(schneller) ist. Außerdem hat ja jeder Computer eine andere Geschwindigkeit.
Ganz an den Anfang ein GetTickCount; ganz ans Ende noch eins. Daraus die Rechenzeit bestimmen!

Zum Anzeigen des Fortschritts mit Anzahl der untersuchten Zahlen arbeiten. Ehrlich!!!


Oder den ganzen Code zweimal ausführen, damit du beim zweiten mal vorher weißt, wielange er braucht, und davon den Fortschritt abhängig machen kannst.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#38

Re: For-do Schleife mit Sprung

  Alt 16. Dez 2003, 14:15
Zitat von jbg:
Zitat von phlux:
kommt da nicht (Count div 2 - i) hin???
Wieso sollte da i hinkommen?
Kp ergibt auch keinen Sinn, vergiss es einfach
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#39

Re: For-do Schleife mit Sprung

  Alt 16. Dez 2003, 20:17
Die Differenz der beiden GetTickCount s gibt mir also den Zeitunterschied in 1000stel-Sekunden zurück

Sehr schön danke!!!!
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#40

Re: For-do Schleife mit Sprung

  Alt 16. Dez 2003, 20:27
Die Auflösung ist nicht ganz 1/1000, sondern liegt etwas darunter.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 08:20 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