Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (480)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (546)
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  
  Lamenting the Garbage Collector  (Read 1211 times)
0 Members and 1 Guest are viewing this topic.
Offline jbanes

JGO Coder


Projects: 1


"Java Games? Incredible! Mr. Incredible, that is!"


« Posted 2003-03-21 02:07:15 »

I've created some side scrolling code that works silky smooth except for an occasional pause. I've tracked this pause back to the garbage collector (what else) running every once in awhile for anywhere from 70 to 100 ms. My loop is free of garbage save for one possibility: the graphics object. Every loop of the BufferStrategy creates a new Graphics object (I've verified this in the Java source) which eventually collects into enough to require a full garbage collection. The perfect solution (of course) is for Java to reuse the graphics contexts on VolatileImages. Barring that, has anyone figured out a good way to handle the garbage collector in 2D code?

Java Game Console Project
Last Journal Entry: 12/17/04
Offline mill

Junior Member




popcorn freak


« Reply #1 - Posted 2003-03-21 13:45:39 »

you are letting your threads sleep, right? otherwise the GC have a lot of garbage to collect. it only does that when there is too much garbage and hence the pause. by letting your threads sleep a little every now and then the GC can do a little collecting but very often resulting in smoother execution.

hope it makes sense.

Offline rgeimer

Senior Newbie





« Reply #2 - Posted 2003-03-21 14:53:13 »

Also, try using incremental gc.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline jbanes

JGO Coder


Projects: 1


"Java Games? Incredible! Mr. Incredible, that is!"


« Reply #3 - Posted 2003-03-21 19:41:07 »

Quote
you are letting your threads sleep, right? otherwise the GC have a lot of garbage to collect. it only does that when there is too much garbage and hence the pause. by letting your threads sleep a little every now and then the GC can do a little collecting but very often resulting in smoother execution.


I added Thread.yield() (since I didn't want to give up a precious, whole millisecond) and it smoothed out. It still makes barely perceivable jumps every once in awhile, but I only notice because I have a trained eye. To everyone else, it's silky smooth. Thanks, mill!

Java Game Console Project
Last Journal Entry: 12/17/04
Offline mill

Junior Member




popcorn freak


« Reply #4 - Posted 2003-03-21 19:56:20 »

anytime Smiley

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.

atombrot (20 views)
2014-08-19 09:29:53

Tekkerue (21 views)
2014-08-16 06:45:27

Tekkerue (21 views)
2014-08-16 06:22:17

Tekkerue (12 views)
2014-08-16 06:20:21

Tekkerue (19 views)
2014-08-16 06:12:11

Rayexar (55 views)
2014-08-11 02:49:23

BurntPizza (37 views)
2014-08-09 21:09:32

BurntPizza (28 views)
2014-08-08 02:01:56

Norakomi (35 views)
2014-08-06 19:49:38

BurntPizza (64 views)
2014-08-03 02:57:17
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

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
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!