Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

poke/peek statt pset/point
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 17:38    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
Auf Single-Core-Systemen ist es definitiv nicht schneller. peinlich


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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.06.2007, 17:46    Titel: Antworten mit Zitat

csderats hat Folgendes geschrieben:
Mao hat Folgendes geschrieben:
Auf Single-Core-Systemen ist es definitiv nicht schneller. peinlich


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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 17:48    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
csderats hat Folgendes geschrieben:
Mao hat Folgendes geschrieben:
Auf Single-Core-Systemen ist es definitiv nicht schneller. peinlich


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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.06.2007, 17:51    Titel: Antworten mit Zitat

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. mit den Augen rollen
Hat aber ÜBERHAUPT NIX mit der Grafikbibliothek zutun...
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 20.06.2007, 17:54    Titel: Antworten mit Zitat

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. mit den Augen rollen
Hat aber ÜBERHAUPT NIX mit der Grafikbibliothek zutun...



mag sein das es nix mit fbgfx zu tun hat aaaber: das war auf nem SCS zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.06.2007, 17:56    Titel: Antworten mit Zitat

Es hat aber überhaupt nichts zur Diskussion beigetragen. mit den Augen rollen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 17:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.06.2007, 18:04    Titel: Antworten mit Zitat

hatte da mal was geschrieben lächeln
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=20
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 18:10    Titel: Antworten mit Zitat

sieht nett aus,
aber... ist auch nur Timer
und beim zweiten Pixeltest stuerzt es ab zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.06.2007, 19:42    Titel: Antworten mit Zitat

jo, das is noch 0.16 code, mit dem alten bildpuffer zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.06.2007, 19:46    Titel: Antworten mit Zitat

ja, hab ich dann auch gemerkt grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 21.06.2007, 20:24    Titel: Antworten mit Zitat

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 zwinkern
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 21.06.2007, 20:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 21.06.2007, 22:58    Titel: Antworten mit Zitat

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 grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 22.06.2007, 09:59    Titel: Antworten mit Zitat

vergesst das obere Beispiel, da ist mir der eine oder andere Gedankenfehler unterlaufen. (Vorallem, Zeitmessungen bei mehreren laufenden Programmen kann sehr seltsam ausfallen durchgeknallt )

Nun der Oberhammer, kompletter Screen Buffer (800x600) auf meinen schmeiss-mich-weg-rechner grinsen

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 grinsen
da macht pixeln wieder spass happy
_________________


Zuletzt bearbeitet von Eternal_pain am 23.06.2007, 18:50, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.06.2007, 15:02    Titel: Antworten mit Zitat

3 threads.

code:
Code:

screen 20
sleep



basta
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 22.06.2007, 15:04    Titel: Antworten mit Zitat

und was soll das?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.06.2007, 15:05    Titel: Antworten mit Zitat

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 happy
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 22.06.2007, 17:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.06.2007, 17:33    Titel: Antworten mit Zitat

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. Zunge rausstrecken
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz