AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeit für Sortieralgos
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit für Sortieralgos

Ein Thema von Nikolas · begonnen am 17. Mai 2004 · letzter Beitrag vom 18. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:39
Ich bn grad dabei ein kleines Programm über Sortieralgos zu schreiben und bin auf was komisches gestossen: Das Bild ist ein Screenshot aus meinem Programm. In schwarz hab ich die Zeitfür für den jeweiligen Sortiervorgang einzeichnen lassen.
So messe ich die Zeit:

Delphi-Quellcode:
a:= gettickcount;
Sortieren;
a:= gettickcount-a;
Hat da jemand eine Idee, warum ich da diese gequantelten Bänder bekomm?
Miniaturansicht angehängter Grafiken
selsort.2.jpg  
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:47
Evtl. weil das Zeitmessen in der falschen procedure ist? Also rein logisch würde ich sagen muss man die Zeit ja seperat messen weil man ja nie weiß wann das tauschen fertig ist! Allerdings seh ich jetzt auch nicht wirklich bei dem Graphen durch
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:52
ich hab bis jetzt nur Selection und Bubble und da laufen zwei verschachtelte for-Schleifen ab und wenn die fertig sind, ist alles sicher sortiert.
Danke aber für die Idee
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
PhaTTy

Registriert seit: 16. Mai 2004
Ort: Laupheim
40 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:54
Sollte es nicht auch a:=a+(gettickcount-a); heisen?
Make it idiot-proof and someone will invent a better idiot...
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:56
rechne das mal kurz mit zwei werten durch, da wirst du sehen, dass da was falsches rauskommt.
Meine Version stimmt da schon.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
PhaTTy

Registriert seit: 16. Mai 2004
Ort: Laupheim
40 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:58
Zitat von Toxman:
rechne das mal kurz mit zwei werten durch, da wirst du sehen, dass da was falsches rauskommt.
Meine Version stimmt da schon.
OK womit sich wieder der Spruch "Erst denken, dann reden" bewahrheitet hätte
Make it idiot-proof and someone will invent a better idiot...
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

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

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 21:59
nee, (neuezeit - altezeit) reicht vollkommen

falls du mit deinen algos unter die auflösung des tickcounters kommst, könnte es probleme geben...
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 Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 22:03
Der geht ja in den ms-Bereich und fast alle Sortierungen dauern min 10 ms oder so was.
Es sieht aber fast so aus, als ob gettickcount nur alle 15-16 ms aktualisiert wird.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

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

Re: Zeit für Sortieralgos

  Alt 17. Mai 2004, 22:18
ja
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 negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

Re: Zeit für Sortieralgos

  Alt 18. Mai 2004, 04:54
Zitat:
Der geht ja in den ms-Bereich und fast alle Sortierungen dauern min 10 ms oder so was.
Also das kann ja wohl nicht stimmen, ich weiß ja nicht was für Sortierungen und Datenmengen du nutzt.
Ein QuickSort in Assembler benötigt ca. 5-10 Taktzyklen pro Vergleich und Elementetausch. Bei 2.0 GHz kämen wir also auf 205 Millionen solcher Quicksort Vergleiche. Ich würde also eher sagen das man weit unterhalb von Millisekunden liegt.

Nee, ich vermute das es an der Art deiner Messung liegt. GetTickCount() ist eben nur in 1 ms genau, laut Abtasttheorem kann also der Fehler schon 2ms betragen. Desweiteren misst deine Routine den Tasksheduler und die anderen Task im gesamten System mit. Statt also nur die eigentlichen Routinen zu messen wirst du unter einem Multithreading System wie Windows IMMER auch Interruptroutinen, Backgroundtasks, Ring0 Task usw. usw. mit messen, da diese sich eben zeitlich dazwischen schalten.
Eventuell rufts du in der Messung noch Application.ProcessMessages o.ä. auf, was die Sache noch verschlimbessert.

Schau dir mal QueryPeformanceCounter(), Get/SetThreadPriority(), Get/SetPriorityClass(), GetThreadTimes() an.

Ich sage dir aber jetzt schon das exakte Messungen unter Windows fast unmöglich sind. Der beste Weg dürfte es sein jede Messung 1000'ende male zu wiederholen und den bereinigten Mittelwert zu bilden. D.h. diese Mittelwertbildung muß Ausreiser-Messungen erkennen und in der Rechnung eliminieren.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:12 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