Extrem miese Performance durch Multithreading?
Übersicht

![]() |
DAKBetreff: Extrem miese Performance durch Multithreading? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab grad erstmals mit Multithreading in BMax herum gespielt und bin auf ein erschreckend mieses Ergebnis gekommen.
Zuerst mal der Code, den ich verwendet hab: BlitzMax: [AUSKLAPPEN]
Spielt mal rum mit dem NUMBER_OF_THREADS... schlagt mich, wenn ich schlampig programmiert hab, aber wenn ich einen thread mach, dann hab ich quasi keine cpu-auslastung, wenn ich 2 mach, bin ich auf 100% und wenns noch mehr wird, geht der rechner ziemlich in die knie. 2x so nen billigtask sollte das ganze aber schon hinkriegen ohne auf 100% zu gehen. (gut, der computer auf dem ich das getestet hab, is ne alte möhre, das is mein alter laptop mit 1x2ghz, aber trotzdem sollt das den nicht so extrem überlasten. wenn ich das programm mit einem prozess 2x gleichzeitig ausführe is das nicht mal annähernd merkbar in der cpu-auslastung.) bitte testet das auch mal schnell durch und schaut, obs bei euch auch so mies is. btw: ich verwende BMax 1.34 und MaxGUI 1.33 noch mal zu meinem Laptop: Compaq Evo N610c 1x2 GHz 512 MB Ram Win XP SP3 Intressant wärs, wies auf anderen Systemen / Betriebssystemen ausschaut... |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich mach auch grad versuche mit Threads - ich glaub irgendwie haut da was mit den Timern nicht hin. Ersetz den mal mit Delay. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
rennt ohne probleme, stimmt
mach ich mich mal dran ein timer-modul zu schreiben, dass auch mit threads funktioniert |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ausserdem wird diese While/Wend schleife auch 100% CPU ziehen, solange der Mutex gelockt ist.
Warum überhaupt dieses seltsame konstrukt? Und was ist der sinn des Programmes? Überhaupt ist Threading in BMax momentan unbenutzbar, da einfach nichts thread-safe oder zumindest re-entrant ist. Events(Worauf Timer basieren) sind zu vermeiden, d.h. Timer nur im Main-Thread benutzen. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zumindest das Laden von Images im Hintergrund läuft bei mir flott und ohne Probleme. | ||
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 |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sofern du dabei sicherstellst, dass nicht 2 threads zur gleichen zeit auf die Pixmaps zugreifen(Du darfst nur Pixmaps in nem gesonderten thread laden, Images gehen nur mit glück, je nachdem wie nett der GraKa Treiber ist, ob er laden in nem andern thread erkennt und erlaubt, oder ob er dir weg crasht), ist das kein Thema, da Pixmaps ja keine Events verursachen, oder sonst irgendwelche seiteneffekte haben. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group