Millisecs() - Ketzerei

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

BlitzMoritz

Betreff: Millisecs() - Ketzerei

BeitragDo, Okt 25, 2012 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwie bekomme ich arge Zweifel am Glauben an Millisecs(). Wenn ich folgenden Code (ohne Debug-Modus) ausfuehre, um zu messen, wie lange es einerseits dauert, eine Millionen Linien zu malen und andererseits, wie lange es dauert, zehn Abbilder davon zu grabben ...
BlitzMax: [AUSKLAPPEN]
SuperStrict
Graphics 1024, 768
'-----------------------------------------------------------------
Local i%, time% = MilliSecs()
For i = 1 To 1000000
SetColor Rand(0,255), Rand(0,255), Rand(0,255)
DrawLine Rand(0,1024), Rand(0,768), Rand(0,1024), Rand(0,768)
Next
Flip
Print (MilliSecs() - time) + " Millisekunden"
'-----------------------------------------------------------------
Local img:TImage[10]
time = MilliSecs()
For i = 0 Until 10
img[i] = CreateImage(1024, 768)
GrabImage(img[i], 0, 0)
Next
Print (MilliSecs() - time) + " Millisekunden"
... so bekomme ich als Ergebnis für das erste ungefähr 2,5 Sekunden, für das zweite 5 Sekunden in der Konsole ausgegeben. Das kann aber einfach nicht stimmen! Gefühlt sind es beim ersten doppelt soviel, also etwa 5 Sekunden und beim zweiten vieeel weniger, noch unter 1 Sekunden - ich kann ja die Stoppuhr nehmen Mad
Wie kann das sein?

Xeres

Moderator

BeitragDo, Okt 25, 2012 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das grabben dauert länger - gefühlt und in Zahlen.
Du kannst ja die Tests mal deutlicher abgrenzen:
BlitzMax: [AUSKLAPPEN]
Print (MilliSecs() - time) + " Millisekunden"
Delay(2000)
Print("Grab")
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

blackgecko

BeitragFr, Okt 26, 2012 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeichnen: 4938 Millisekunden
Grabben: 468 Millisekunden
Deckt sich bei mir mit der gefühlten Zeit. Was nun? Very Happy
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

BlitzMoritz

BeitragFr, Okt 26, 2012 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@blackgecko: Eben! Das entspricht meinem Eindruck, nur werden bei mir ganz andere Zeiten ausgespuckt.
Wer's nicht glauben will - hier der Beweis als Demo-MP4-Video.

Edit @Bladerunner: Umkehrung der Reihenfolge ergibt anderen Blödsinn:
Grabben - Konsole: 3 Sekunden, gefühlt 2 Sekunden
Linien - Konsole: 2,5 Sekunden, gefühlt 5 Sekunden
  • Zuletzt bearbeitet von BlitzMoritz am Fr, Okt 26, 2012 21:24, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragFr, Okt 26, 2012 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir dauert das grabben deutlich länger als das zeichnen: 2000ms zu 11000ms.
Als Idee: vertausch mal deine Reihenfolge im Test. vielleicht wird da noch Krempels initialisiert oder so.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

PhillipK

BeitragFr, Okt 26, 2012 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Murkt da vielleicht etwas anders rum?

Evtl Debug vs Normalbuild?
Threaded aktiv?
(Blide?) Quickbuild?

Test nochmal neugeschrieben, in anderer form?

Humbugidee: 2x variablen mit MS eingelesen und ausgelesen?

Evtl simpler test:
Local ms:int = Millisecs()
Delay(2000)
Print("Dauer: "+(Millisecs()-ms)) ?

Sprich: Wirklich alles in irgendeiner form mal überprüft? Very Happy

Lakorta

BeitragSa, Okt 27, 2012 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schätze mal einen PC -Neustart hast du schon versucht?
---

BlitzMoritz

BeitragSa, Okt 27, 2012 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
@PhillipK: Nein, ich hab' nichts anderes laufen und auch keine der von dir erwähnten Build-Options aktiviert.
Ich hab' den gleichen Code 'mal auf einem richtig gut bestückten Windows-PC laufen lassen und erhielt diesmal "richtige Ergebnisse" - echt und gefühlt Wink - , die tendenziell denen der meisten von euch entsprechen: 600 ms für die Linien und ca. 2,5 Sekunden für's Grabben.
Andere Test mit den oben dokumentierten komischen Ausgaben liefen auf zwei etwas älteren Notebooks mit Unix-Systemen.
Der Film dokumentiert das Geschehen auf einem Linux-Notebook. Und auf'm MacBook ist das Ergebnis noch krasser: Die Konsole spuckt mir ganze 32,5 Sekunden für die Linien und nur 0.3 Sekunden für's Grabben aus.
Entweder liegt's an den Unix-Systemen - das würde die von der Mehrheit abweichenden Werte in blackgeckos Test erklären, der - so vermute ich - ebenfalls mit Linux arbeitet. Aber immerhin stimmen seine gemessenen Werte und die meines MacBooks wenigstens mit den "gefühlten" überein. Ob sie (und jene von blackgecko) aber wirklich stimmen, dass nämlich das Grabben so viel schneller geht, bleibt fraglich.
Vielleicht liegt's aber auch an der naturgemäß schwachen Grafik-Hardware der Notebooks, die eventuell mit dem Grafikspeicher für zehn gegrabbte 1024x768 Bilder nicht mehr mitkommt und sich dabei so "verschluckt", dass sie die Systemzeiten o.a. durcheinanderbringt. Mit scheint nämlich, dass die Summe beider Zeiten schon stimmt, nur der zweite Start time = Millisecs() irgendwie viel zu spät anfängt, weil bereits die grafische Überforderung das System ins Schleudern bringt.
Ich weiß - das klingt wenig fundiert. Kurios bleibt's.
 

#Reaper

Newsposter

BeitragSa, Okt 27, 2012 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, also ich weiß nicht mehr bei was es war, ist auch schon ein paar Jahre her, aber so etwas in der Art hatte ich auch schon mal. Da wurde mir auch mittels MilliSecs() eine sehr kurze Zeit angezeigt, real hatte es aber immer deutlich länger gedauert. Ob es was mit Grafik zutun hatte, bin ich mir nicht mehr sicher. Auf jeden Fall hatte es auch meinen (siehe Signatur) PC für kurze Zeit quasi zum Stillstand gebracht.. Wink ^^°
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

BladeRunner

Moderator

BeitragSa, Okt 27, 2012 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich musste damals den B64 einstampfen weil er unter Linux und MacOS (OpenGL) einfach nicht laufen wollte. Framerates um 1-2 Frames/Sekunde, wo ich unter Windows OGL noch locker 60 FPS hatte. Da scheint bei Max was derbe nicht zu stimmen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group