Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 20.06.2007, 17:38 Titel: |
|
|
Mao hat Folgendes geschrieben: | Auf Single-Core-Systemen ist es definitiv nicht schneller.
|
hmm, ich hatte irgendwann da mal nen test gemacht (fb 0.15 oda so) und da war ne MultiThreading benchi auf meinem SC schneller... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.06.2007, 17:46 Titel: |
|
|
csderats hat Folgendes geschrieben: | Mao hat Folgendes geschrieben: | Auf Single-Core-Systemen ist es definitiv nicht schneller.
|
hmm, ich hatte irgendwann da mal nen test gemacht (fb 0.15 oda so) und da war ne MultiThreading benchi auf meinem SC schneller... |
wie willst du das thread-verhalten der GFXlib testen?! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 20.06.2007, 17:48 Titel: |
|
|
Jojo hat Folgendes geschrieben: | csderats hat Folgendes geschrieben: | Mao hat Folgendes geschrieben: | Auf Single-Core-Systemen ist es definitiv nicht schneller.
|
hmm, ich hatte irgendwann da mal nen test gemacht (fb 0.15 oda so) und da war ne MultiThreading benchi auf meinem SC schneller... |
wie willst du das thread-verhalten der GFXlib testen?! |
die zeit messen, die er braucht um zu zählen (1 - 5.000.000 oda so ) und dann immer zeitgemessen (timer bla) und dann 2 threads jeweils bis 2.500.000 oda so und dann wars ein bissl schneller-.-.. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.06.2007, 17:51 Titel: |
|
|
Das hat aber nichts mit der Grafikbibliothek von FB zutun und passt demzufolge auch nicht hier dazu.
Und wenn du 2 verschiedene Rechnungen auf 2 verschiedenen Cores parallel ausführen lässt, ist klar, dass das eine schneller ist.
Hat aber ÜBERHAUPT NIX mit der Grafikbibliothek zutun... _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 20.06.2007, 17:54 Titel: |
|
|
Mao hat Folgendes geschrieben: | Das hat aber nichts mit der Grafikbibliothek von FB zutun und passt demzufolge auch nicht hier dazu.
Und wenn du 2 verschiedene Rechnungen auf 2 verschiedenen Cores parallel ausführen lässt, ist klar, dass das eine schneller ist.
Hat aber ÜBERHAUPT NIX mit der Grafikbibliothek zutun... |
mag sein das es nix mit fbgfx zu tun hat aaaber: das war auf nem SCS  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.06.2007, 17:56 Titel: |
|
|
Es hat aber überhaupt nichts zur Diskussion beigetragen.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 20.06.2007, 17:58 Titel: |
|
|
ich wollte in diesem Post nur herausfinden ob und wie ich das schreiben/auslesen und erstellen von Buffern schneller machen kann,
btw: gibt es noch andere moeglichkeiten die geschwindigkeit zu testen? _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 20.06.2007, 18:10 Titel: |
|
|
sieht nett aus,
aber... ist auch nur Timer
und beim zweiten Pixeltest stuerzt es ab  _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.06.2007, 19:42 Titel: |
|
|
jo, das is noch 0.16 code, mit dem alten bildpuffer  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 20.06.2007, 19:46 Titel: |
|
|
ja, hab ich dann auch gemerkt  _________________
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 21.06.2007, 20:24 Titel: |
|
|
Ohne einen extra Thread würde FB gar nicht richtig laufen.
Beispiel Winapi:
Wer sich Lutzifers Winapi tutorial angesehen hat, sollte merken, dass man von Windows eine "Mitteilung" bekommt, wenn man das Fenster neuzeichnen muss (z.B. wenn es zuerst von einem Fenster überdeckt wurde und dann im Vordergrund kommt).
Wenn man jetzt keinen Thread hat, der andauernd diese Nachrichten abfängt und neuzeichnet, dann würde ein einfaches Sleep verhindern, dass das Bild neu aufgebaut wird. WIe man sieht passiert das aber nicht, weil der Thread der GFX Lib dafür sorgt, dass es neugezeichnet wird  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 21.06.2007, 20:45 Titel: |
|
|
So?
Ich komme aus ner Sprache, da is mir die API gut bekannt... und ich weiß auch dass man net nen extra Thread braucht...
gut, was ich heut gesehn hab bei meinen Experimenten könnte einen auch vermuten lassen dass es 2 Threads nutzt.. ich prüf das mal, hab da ein nettes tool x)
// edit:
Muss erst Windows neuinstalliern, sodass sich der Windows Installer beruhigt... der will Laufwerk B: haben... kA wieso |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 21.06.2007, 22:58 Titel: |
|
|
nochmal 2 Beispiele:
Allocate/DeAllocate
Code: |
Dim XTime as double = Timer
const T_width = 800
const T_heigth = 600
const T_BPP = 4
Dim T_pitch as uinteger
T_pitch=((T_width)+IIF ((T_width) mod 4,4-((T_width) mod 4),0)) *4
Dim Test as UInteger Ptr
Test=Allocate (32+(T_pitch*T_heigth)+(T_width*T_BPP))
Test[0]=7 'header
Test[1]=T_BPP 'BPP
Test[2]=T_width 'width
Test[3]=T_heigth 'heigth
Test[4]=T_pitch 'pitch
'5 & 6 reserved = 0
Screen 19,32
screenlock
dim as integer x1,y1,x2,y2,c0
for l as integer=0 to 99
x1=int(rnd*800)
x2=int(rnd*800)
y1=int(rnd*600)
y2=int(rnd*600)
c0=int(rnd*&hFFFFFF)
Line Test,(x1,y1)-(x2,y2),c0
next l
put (0,0),Test,Pset
ScreenUnlock
?Timer-XTime
sleep
DeAllocate(Test)
end
|
ImageCreate/ImageDestroy
Code: |
Dim XTime as double = Timer
const T_width = 800
const T_heigth = 600
Screen 19,32
Dim Test as UInteger Ptr
Test=ImageCreate(T_width,T_heigth,0)
screenlock
dim as integer x1,y1,x2,y2,c0
for l as integer=0 to 99
x1=int(rnd*800)
x2=int(rnd*800)
y1=int(rnd*600)
y2=int(rnd*600)
c0=int(rnd*&hFFFFFF)
Line Test,(x1,y1)-(x2,y2),c0
next l
put (0,0),Test,Pset
ScreenUnlock
?Timer-XTime
sleep
ImageDestroy (Test)
end
|
zugegeben, es nimmt sich nicht sehr viel, aber es bringt schon etwas  _________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 22.06.2007, 09:59 Titel: |
|
|
vergesst das obere Beispiel, da ist mir der eine oder andere Gedankenfehler unterlaufen. (Vorallem, Zeitmessungen bei mehreren laufenden Programmen kann sehr seltsam ausfallen )
Nun der Oberhammer, kompletter Screen Buffer (800x600) auf meinen schmeiss-mich-weg-rechner
ImageCreate + PSet
Code: |
Dim XTime as double = Timer
const T_width = 800
const T_height = 600
Screen 19,32
Dim Test as UInteger Ptr
Test=ImageCreate(T_width,T_height,0)
screenlock
for y as integer=0 to T_height-1
for x as integer=0 to T_width-1
Pset Test,(x,y),&hFFFFFFFF
next x
next y
put (0,0),Test,Pset
ScreenUnlock
?Timer-XTime
sleep
ImageDestroy (Test)
end
|
ergab ~ 0,1610s
und nun...
Edit: ('n Dimensionierungsfehler behoben)
Code: |
Dim XTime as double = Timer
const T_width = 800
const T_height = 600
const T_BPP = 4
Dim T_pitch as uinteger
T_pitch=((T_width)+IIF ((T_width) mod 4,4-((T_width) mod 4),0)) *4
Dim Test as UInteger Ptr
Test=Allocate (32+(T_pitch*T_height))
Test[0]=7 'header
Test[1]=T_BPP 'BPP
Test[2]=T_width 'width
Test[3]=T_height 'heigth
Test[4]=T_pitch 'pitch
'5 & 6 & 7 reserved = 0
Screen 19,32
screenlock
Dim adr as uinteger
adr=8
for y as integer=0 to T_height-1
for x as integer=0 to T_width-1
Test[adr+x]=&hFFFFFFFF
next x
adr+=T_pitch/4
next y
put (0,0),Test,Pset
ScreenUnlock
?Timer-XTime
sleep
DeAllocate(Test)
end
|
machte: ~0,0061s
da macht pixeln wieder spass  _________________

Zuletzt bearbeitet von Eternal_pain am 23.06.2007, 18:50, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 22.06.2007, 15:04 Titel: |
|
|
und was soll das? _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 22.06.2007, 15:05 Titel: |
|
|
PMedia hat Folgendes geschrieben: | So?
Ich komme aus ner Sprache, da is mir die API gut bekannt... und ich weiß auch dass man net nen extra Thread braucht...
gut, was ich heut gesehn hab bei meinen Experimenten könnte einen auch vermuten lassen dass es 2 Threads nutzt.. ich prüf das mal, hab da ein nettes tool x)
// edit:
Muss erst Windows neuinstalliern, sodass sich der Windows Installer beruhigt... der will Laufwerk B: haben... kA wieso |
war ungeduldig undhabs deshalb nach geschaut... im tskmgr  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 22.06.2007, 17:14 Titel: |
|
|
Im Tskmgr siehst aber net die Threads eines Progs... sondern nur die Instanzen... ich installier gleich Windows neu, dann sollte es wieder installierbar sein. |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 22.06.2007, 17:33 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Im Tskmgr siehst aber net die Threads eines Progs... sondern nur die Instanzen... ich installier gleich Windows neu, dann sollte es wieder installierbar sein. |
doch
Prozesse => Ansicht => Spalten auswählen => Threadanzahl.  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
|