Seite 1 von 2
DrawImage
Verfasst: 03.04.2013 10:16
von Josh
Hallo,
wenn ich ein Image auf ein gleich großes Zielimage zeichne, benötigt dies doppelt so lange, als wenn das Zielimage größer als das Quellimage ist. Da kann dich was nicht stimmen?
Code: Alles auswählen
CreateImage (0, 500, 300, 32)
CreateImage (1, 500, 300, 32)
CreateImage (2, 501, 301, 32)
StartDrawing (ImageOutput (0))
Box (0, 0, 500, 300, #Red)
StopDrawing()
time = ElapsedMilliseconds()
StartDrawing (ImageOutput (1))
For i = 1 To 10000
DrawImage (ImageID (0), 0, 0, 500, 300)
Next
StopDrawing()
Debug ElapsedMilliseconds() - time; 4368ms
time = ElapsedMilliseconds()
StartDrawing (ImageOutput (2))
For i = 1 To 10000
DrawImage (ImageID (0), 0, 0, 500, 300)
Next
StopDrawing()
Debug ElapsedMilliseconds() - time ; 2184ms
getestet: Win7 x64, Pb 5.11 x64
Re: DrawImage
Verfasst: 03.04.2013 10:33
von ts-soft
Hier ist doch kein Image zu gross, lediglich malst Du über die ersten Images hinaus.
Ein Image mit der weite von 500 geht von 0 - 499, wenn Du da auf 500 malst, haste
ein Problem
Deine Zeitmessung sagt ganz neben bei gesagt, gar nichts aus, da mit Debugger gemessen.
Gruß
Thomas
Re: DrawImage
Verfasst: 03.04.2013 11:44
von Josh
Wo? Wie? Was? Ein Image von 500x300 soll größer sein als ein Image von 500x300???? Wo male ich da über das Image hinaus?
Ob mit oder ohne Debugger spielt in diesem Falle kaum eine Rolle. Die Rechenarbeit liegt im DrawImage Befehl, der Rest liegt bei 10k Durchläufen im nicht messbaren Bereich. Die Zahlen sagen genau das aus, was sie sollen.
Re: DrawImage
Verfasst: 03.04.2013 12:14
von ts-soft
Hab mich geirrt, bei DrawImage stimmen die Werte.
Die Messung mit Debugger zeigt allerhöchstens einen Trend, der Erfahrungsgemäß auch falsch sein könnte,
ist somit im Allgemeinen unnütze.
Der Unterschied ohne Debugger beträgt bei mir lediglich 4336 : 3776, also bei weitem nicht so dramatisch wie bei Dir.
Re: DrawImage
Verfasst: 03.04.2013 12:38
von Josh
Habe das Beispiel erweitert und im englischen
Bugforum gepostet.
Was noch interessant ist, dass Pb x64 in diesem Beispiel wirklich erheblich schneller ist als x86
Re: DrawImage
Verfasst: 03.04.2013 12:46
von ts-soft
Leider verwendest Du immer noch den Debugger, der vollkommen unnütze Ergebnisse liefert.
Oftmals lassen sich aus so ermittelten Ergebnissen nicht mal ein Trend ablesen, weil die
Ergebnisse ohne genau das Gegenteil ergeben könnten.
Aber Du willst es anscheinend nicht wahr haben, obwohl das hier bereits tausende mal diskutiert wurde.
Messungen mit angeschaltetem Debugger sind absolut Unnütz, weil das Ergebnis keinerlei Aussagekraft hat.
Re: DrawImage
Verfasst: 03.04.2013 12:58
von alter Mann
bei mir 2203:2203
getestet auf Win8 x64 PB 5.11x86
Re: DrawImage
Verfasst: 03.04.2013 13:11
von Josh
ts-soft hat geschrieben:Aber Du willst es anscheinend nicht wahr haben, obwohl das hier bereits tausende mal diskutiert wurde. Messungen mit angeschaltetem Debugger sind absolut Unnütz, weil das Ergebnis keinerlei Aussagekraft hat.
Leider willst du es nicht wahrhaben, dass der Debugger in diesem Beispiel
keinerlei Einfluss hat. Abgesehen von den üblichen Messtoleranzen sind die Ergebnisse exakt die selben.
Wie ich bereits oben geschrieben habe, liegt die Rechenarbeit im
DrawImage und der Rest liegt bei den 10k Durchläufen im nicht messbaren Bereich. Da muss ich schon auf 100k Durchläufe gegen, dass ich für den Rest zeitweise mal auf 16ms für die gesamten 100k Durchläufe komme. Also vollkommen irrelevant.
Re: DrawImage
Verfasst: 03.04.2013 13:20
von ts-soft
50% Zeitdifferenz kann ich so oder so nicht messen, lediglich < 10% mit x86 und < 5% mit x64.
Re: DrawImage
Verfasst: 03.04.2013 13:32
von NicTheQuick
Also hier unter Linux x64 kriege ich folgende Ergebnisse:
Debugger Window hat geschrieben:4039
5059
Ohne Debugger kommt das raus:
4100
3998