Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (517)
Games in Android Showcase (123)
games submitted by our members
Games in WIP (578)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Images and Memory Usage  (Read 2867 times)
0 Members and 1 Guest are viewing this topic.
Offline MonsterOfCookie

Junior Duke


Medals: 2


Gar


« Posted 2011-06-07 07:31:50 »

Hi People...

Just wanted to get a handle on a preferred way of handling images. In my game I currently have 8 different backgrounds I use at various stages during my game, at the moment I currently create a cache of the 8 images (752x512 JPG ~ 150KB) at start up. But I am beginning to think, convinced by profiling, that I am eating up unnecessarily large amounts of ram - Some of the images aren't going to be used (should I use lazy-loading perhaps?).

So my question is, should I switch to loading the image when I require it in the game?
Thus only having 1 buffered image at anyone time for the background? A pause in the game whilst it loads the image, for the level, is fine. I am just thinking - with this method I am going to incur more GC's due to rotation of different backgrounds.

Anyone have any thoughts? Or is this just a straight trade off?

Cookie

Offline ra4king

JGO Kernel


Medals: 353
Projects: 3
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2011-06-07 08:16:17 »

Whichever floats your boat. Getting back 7x150KB isn't going to make a difference but if you strive for least memory usage, go for it. If you want the best user experience, those extra 1.05MB aren't going to hurt Wink

Offline MonsterOfCookie

Junior Duke


Medals: 2


Gar


« Reply #2 - Posted 2011-06-07 11:09:39 »

Yeah, looks that way.

Also as a side thing, wouldn't it be more than 7*150KB as the BufferedImage object would contain an uncompressed byte[], post decode, of the image? - I will profile again later looking for byte[]

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Mike

JGO Wizard


Medals: 86
Projects: 1
Exp: 6 years


Java guru wanabee


« Reply #3 - Posted 2011-06-07 13:18:31 »

Usually when you start looking at these kind of optimizations you'll never stop and the game will linger instead of being finished ;-)

Personally I'd consider (if it is a small scale applet/webstart game) to stream the new pictures from the server the first time they are needed, that'll decrease the initial loading time with something like 10-20 seconds for people with "normal" connections.

Mike

My current game, Minecraft meets Farmville and goes online Smiley
State of Fortune | Discussion thread @ JGO
Offline MonsterOfCookie

Junior Duke


Medals: 2


Gar


« Reply #4 - Posted 2011-06-07 13:23:14 »

Yes that is very true... You can't profile images out of existence.

Streaming is a great idea, I already logically group my images in different jars to a;low for caching..

I guess moving on to my other hotspots Smiley

Offline ra4king

JGO Kernel


Medals: 353
Projects: 3
Exp: 5 years


I'm the King!


« Reply #5 - Posted 2011-06-07 20:24:45 »

Oh yeah you're using JPG, it's gonna be more than 150KB.

However remember and don't forget this important quote:
Quote
Premature optimization is the root of all evil.

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

DarkCart (16 views)
2014-10-31 21:44:48

DarkCart (21 views)
2014-10-31 21:43:57

TehJavaDev (40 views)
2014-10-27 03:28:38

TehJavaDev (31 views)
2014-10-27 03:27:51

DarkCart (44 views)
2014-10-26 19:37:11

Luminem (27 views)
2014-10-26 10:17:50

Luminem (30 views)
2014-10-26 10:14:04

theagentd (36 views)
2014-10-25 15:46:29

Longarmx (64 views)
2014-10-17 03:59:02

Norakomi (62 views)
2014-10-16 15:22:06
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!