Ram-Verbrauch bei Image

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

impi07

Betreff: Ram-Verbrauch bei Image

BeitragDi, Aug 02, 2011 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich ein Sprite erstelle:

local sprite:TImage = CreateImage(1000, 1000, 1, 0)

müsste doch der Speicherbedarf bei ca 4MB liegen? Also 1000x1000x32Bit. Wenn ich im Taskmanager nachschaue, brauche ich fast das 3-fache.
Oder wie ist denn so ein Image aufgebaut?

Danke!

DaysShadow

BeitragDi, Aug 02, 2011 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Programm benötigt doch nicht nur den Speicher für das Image, sondern auch für das ganze Standardzeugs das geladen wird, allen voran dein Fenster zum darstellen.

BlitzMax: [AUSKLAPPEN]
SuperStrict

Graphics( 800, 600, 0, 60 )

SetClsColor( 128, 128, 128 )

Cls( )
Flip( )

WaitKey( )

SetClsColor( 255, 255, 255 )

Cls( )
Flip( )

Global sprite:TImage = CreateImage( 1000, 1000, 1, 0 )

WaitKey( )


Wenn du irgendeine Taste drückst und der Hintergrund weiß ist, ist dein Image erstellt.
So kannst du ja mal deinen Zuwachs an benötigtem Speicher betrachten, bei mir sind es lediglich ~ 200KB.

Der wirkliche Zuwachs kommt auch erst wenn du etwas in das Image zeichnest, also Pixel setzt.

Grüße
Blessed is the mind too small for doubt
 

impi07

BeitragDi, Aug 02, 2011 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem anderen Zeugs ist mir schon klar. Der Zuwachs kommt dann, wenn man zum ersten Mal mit DrawImage zeichnet, und der ist eben deutlich größer als ich erwartet habe. Da werden die Daten wohl in den VRAM kopiert.
 

HavockToxx

Betreff: Re: Ram-Verbrauch bei Image

BeitragDi, Aug 02, 2011 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
impi07 hat Folgendes geschrieben:
Wenn ich ein Sprite erstelle:

local sprite:TImage = CreateImage(1000, 1000, 1, 0)

müsste doch der Speicherbedarf bei ca 4MB liegen? Also 1000x1000x32Bit. Wenn ich im Taskmanager nachschaue, brauche ich fast das 3-fache.
Oder wie ist denn so ein Image aufgebaut?

Danke!


Das kann man mit den RGB werten für jeden Pixel erklären da diese auch gespeichert werden müssen.

MFG
Havock
 

impi07

Betreff: Re: Ram-Verbrauch bei Image

BeitragDi, Aug 02, 2011 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
HavockToxx hat Folgendes geschrieben:

Das kann man mit den RGB werten für jeden Pixel erklären da diese auch gespeichert werden müssen.

MFG
Havock


Das wären ja 32Bit. Ein Byte jeweils für R,G,B und Alpha.

Holzchopf

Meisterpacker

BeitragDi, Aug 02, 2011 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt mir bekannt vor Rolling Eyes

In diesem Thema hier geht's ums gleiche. BMax, resp. Max2D hält halt einfach ein paar Kopien sämtlicher Pixmaps.

mfG
Holzchopf

PS: Bitte keine ganzen Beiträge zitieren. Die Zitier-Funktion dient, um sich auf spezifische Aussagen zu beziehen Wink
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

impi07

BeitragDi, Aug 02, 2011 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Holzchopf hat Folgendes geschrieben:
Das kommt mir bekannt vor Rolling Eyes
BMax, resp. Max2D hält halt einfach ein paar Kopien sämtlicher Pixmaps.


Danke, sowas hatte ich schon vermutet. Naja, RAM sollte eigentlich eh jeder genügend haben, bei den Speicherpreisen heutzutage.
 

PhillipK

BeitragMi, Aug 03, 2011 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
impi07 hat Folgendes geschrieben:
Naja, RAM sollte eigentlich eh jeder genügend haben, bei den Speicherpreisen heutzutage.


Es kommt wirklich darauf an, was du planst.
Willst du 1000x1000 Große sprites zeichnen? Wieviele?
Zuviel ist nie gut, zumals dann immer evtl noch einen alternativen Weg gibt Very Happy Aber wenn es "nur" 200 Bilder zb sind, ist das getrost zu vernachlässigen.
 

impi07

BeitragMi, Aug 03, 2011 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
PhillipK hat Folgendes geschrieben:
Es kommt wirklich darauf an, was du planst.
Willst du 1000x1000 Große sprites zeichnen? Wieviele?
Zuviel ist nie gut, zumals dann immer evtl noch einen alternativen Weg gibt Very Happy Aber wenn es "nur" 200 Bilder zb sind, ist das getrost zu vernachlässigen.


Ich habe eine Weltkarte mit ca. 5000x2000 in 256x256 große Sprites aufgeteilt und zeichne mehrere Ebenen übereinander. Speicherbedarf der Anwendung: ca. 500MB.

skey-z

BeitragMi, Aug 03, 2011 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann sollstest du dir vielleicht überlegen, auf kleinere Tiles zu wechseln, wenn diese sich öfters wiederholen, das verbraucht dann um einiges weniger Speicher.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

impi07

BeitragMi, Aug 03, 2011 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
skey-z hat Folgendes geschrieben:
Dann sollstest du dir vielleicht überlegen, auf kleinere Tiles zu wechseln, wenn diese sich öfters wiederholen, das verbraucht dann um einiges weniger Speicher.


Nein, da wiederholt sich nichts. Aber es läuft sogar auf meinem 1GB Netbook, von daher ist es Ok.

Ratchet

BeitragSa, Aug 13, 2011 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
impi07 hat Folgendes geschrieben:
Naja, RAM sollte eigentlich eh jeder genügend haben, bei den Speicherpreisen heutzutage.


Waren das Zeiten, als man noch vernünftig programmiert hat, weil nach 64kb Schluß war Wink
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group