TileMap CPU Auslastung
Übersicht

![]() |
AsobiBetreff: TileMap CPU Auslastung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich zeichne eine TileMap aus insgesamt 20x15 tiles, die jeweils 40x40px groß sind. Komme dabei jedoch auf 90+% CPU Auslastung. Weiß jemand, wie ich das etwas Leistungsfreundlicher hinkriegen kann ? Hier der Code: BlitzBasic: [AUSKLAPPEN] MapW = 20 |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke Du suchst das Problem nur an der falschen Stelle. Such mal nach "Hurra, 100% Auslastung". Ein Beitrag von Xeres wenn ich nicht irre (bin). Schöner kann man es nicht erklären und ich muß nicht soviel tippen ![]() Edit: https://www.blitzforum.de/foru...hp?t=25242 -> das ist der Link zum Artikel. Es ist übrigens von Abrexxes ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sein Beitrag war einer der ersten die ich mir hier durchlesen habe, daran liegt es auch sicher nicht.
Grund: Wenn ich den oben geposteten code auskommentiere, liegt die auslastung bei 3-10% |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie gross ist denn die Auslastung noch, wenn du die Tipps aus Hurra, 100 % Auslastung umsetzt? | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also mein Code ist im Gesamten so etwa aufgebaut:
BlitzBasic: [AUSKLAPPEN] Graphics 1070,670,32,2 Die Auslastung liegt noch bei 90+% den Beitrag Hurra, 100 % Auslastung habe ich mir schon vor einigen Wochen durchgelesen und es auch so gehandhabt. |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm.... Okay ![]() Und was ist, wenn du den Timer mal auf Extremwerte stellst (1 und - sagen wir mal - 1000)? Ich denke zwar, dass das nicht auf die Auslastung deines BB-Programmes schlagen sollte, aber: Hast du evtl. einen Grafiktreiber, der es erlaubt, VSync zu erzwingen und diese Option auch aktiviert? Wenn ja, versuche diese Einstellung mal auf 'Application default' oder so zu ändern. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich empfehle für hintergrund tiles drawblock![]() Mfg christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Holzchopf hat Folgendes geschrieben: Hmm.... Okay
![]() Hmm muss ich mal testen wenn ich zuhause bin, aber bei meinen bisherigen Projekten (ohne tilemap) war die Auslastung eigentlich nie so hoch. Holzchopf hat Folgendes geschrieben: Und was ist, wenn du den Timer mal auf Extremwerte stellst (1 und - sagen wir mal - 1000)?
1:Dann is die Auslastung zwar geringer, aber das Programm sehr langsam. 1000: merke keinen unterschied, Auslastung hoch Holzchopf hat Folgendes geschrieben: Ich denke zwar, dass das nicht auf die Auslastung deines BB-Programmes schlagen sollte, aber: Hast du evtl. einen Grafiktreiber, der es erlaubt, VSync zu erzwingen und diese Option auch aktiviert? Wenn ja, versuche diese Einstellung mal auf 'Application default' oder so zu ändern.
mfG Keine Ahnung, ehrlich gesagt, kenn mich damit nicht aus und weiß auch nicht wie/wo ich nachsehen könnte. Eingeproggt hat Folgendes geschrieben: Ich empfehle für hintergrund tiles drawblock
![]() Mfg christoph Geht schlecht, da alle tiles in einem Bild sind und über LoadAnimImage geladen werden. In dem Fall geht die Ausgabe glaube ich nur über DrawImage. Wenn ich es trotzdem mit DrawBlock versuche mit einzelnen Bildchen, ist die Auslastung übrigens immernoch so hoch. |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, Butter bei die Fische:
Was sind Deine Rechnerspezifikationen? Poste mal den kompletten betroffenen Code, idealerweise auch die betroffenen Medias im Archiv hochladen. Welche Größe und Eigenschaften haben die zu zeichnenden Bilder (Wieviele Tiles hat die Datei in sich?) Je mehr Infos desto besser können wir helfen. |
||
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 |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
also Rechner (ist ein etwas älteres notebook):
Windows 7 Enterprise 32Bit Intel Pentium M 2Ghz NVidia GForece Go 6800 2048MB RAM Den kompletten Code würde ich hier nur ungern posten, aber ich bezweifel auch, dass dieser etwas mit der Auslastung zu tun hat. Immerhin ist die CPU kaum ausgelastet, sobald der oben genannte Code auskommentiert ist. Die Medias, die ich hierzu benutze sind: Tileset 240x80px, BMP Format, 53.8kb (12 tiles mit je 40x40px) rasterBlock 80x40px, PNG Format, 0.95kb (raster-block normal und mouseover, also 2 animbilder je 40x40px) |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oftmals liegt der Teufel im Detail. Vielleicht lässt Du ja versehentlich die Tiles mehrfach einzeichnen oder so. Das kann man aber nur erkennen wenn man den ganzen Code zur hand hat.
Eventuell ist aber auch einfach die vergleichsweise alte Grafikkarte deines Notebooks schuld. Wenn Du den Code nicht rausgeben willst könntest Du wenigstens eine .exe hochladen welche mittels Tastendruck die Grafikausgabe ein- und ausschalten lässt und die FPS anzeigt. Damit könnte man zumindest erahnen ob das Problem am Rechner oder am Programm liegt. Ohne mehr Code begrenzt sich meine Hilfestellung hier. |
||
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 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn rasterBlock oder aTileSet ein bildschirmfüllendes Bild/Tile ist, dann wird pro Schleifendurchlauf 300mal der Bildschirm komplett vollgezeichnet. Könnte auch ein Grund sein. Ansonsten ist Rätzelraten bei uns angesagt.
Kleine Verbesserung meinerseits, wenn du mit 2D-Arrays arbeiten solltest. Tausche dann die beiden Schleifen aus. In solchen Fällen am besten immer zuerst X dann Y zeichnen. Statt: Code: [AUSKLAPPEN] For drawTileX = 0 To (MapW-1)
For drawTileY = 0 To (MapH-1) Besser: Code: [AUSKLAPPEN] For drawTileY = 0 To (MapH-1)
For drawTileX = 0 To (MapW-1) |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
So bin nun auch zuhause und kann am eigenen Rechner testen.
Vista Ultimate AMD Phenom II X2 550 Dual ~3,1GHz GeForce 9800GT 1GB 4094MB RAM Ohne Tilemap: 3 bis 10% Auslastung Mit TileMap: 43 bis 59% Auslastung Also Teilweise lag es scheinbar am Computer, aber kann auch nicht sein, das ich bei so einem Rechner 50% Auslastung habe bei einer 2D TileMap. Muss also auch mit am Code liegen. Ich schau mal, was sich machen lässt. |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur noch so als Randbemerkung zu den "nur 50%" CPU Auslastung:
Wenn du auf einer Zweikern-CPU wie deinem AMD Phenom ein BB-Programm laufen lässt, so kann das theoretisch höchstens 50% Auslastung verursachen. Denn BB-Programme sind nicht Multithreading fähig (ohne spezielle Hacks) und werden folglich nur auf einem Kern gerechnet. Und die CPU-Auslastung, die der Taskmanager anzeigt, bezieht alle Kerne einer CPU mit ein. Also: Am Problem hat sich nix geändert ![]() Übrigens könnte das Problem auch durch DirectX verursacht werden, aber dann müssten alle BlitzBasic Spiele so tun. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du B+ hast, kannst du vor dem Graphics ja man SetGFXDriver![]() Ansonsten vlt. mal BB updaten? |
||
It's done when it's done. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ansonsten auch: Neuere Rechner werden auf 2D immer langsamer, da immer mehr auf die Grafikkarte übertragen wird die dann 3D per fake 2D zeichnet. In so einem Fall kannst dir mal meine Draw3D2 ansehen (siehe Signatur). Dadurch zeichnet nur noch die Grafikkarte und der Prozessor weist nur an was die Grafikkarte tun soll. Am Ende hat man mehr Rechenleistung durch die CPU übrig. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm vielleicht ist das zu banal, aber mach mal aus den 40x40 tiles 32x32... oder irgendwas was sich aus ner 2 hoch x zahl zusammen setzt. | ||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Asobi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab das Projekt mal hochgeladen. Hab versucht den Code noch so gut ich kann zu verkürzen.
Da das mein erstes Projekt ist wird es sicher auch noch viele Macken im Code haben^^ http://asobi.kilu.de/BBEditor/editor.zip EDIT: hab grad einpaar tests gemacht und finde das ganze iwie komisch. BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 Bei diesem Code hab ich mit einem Kern 0% Auslastung BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 und bei dem hier 10 bis 20%... verbraucht normaler Text etwa so viel ? |
||
<@Exorzist> Die Intilligenz von Menschen lässt sich an ihren Fragen feststellen <@huhu> Hä? |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Siehe Setbuffer![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group