Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (120)
games submitted by our members
Games in WIP (577)
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  
  Big memory usage spike  (Read 300 times)
0 Members and 1 Guest are viewing this topic.
Offline DazKins
« Posted 2013-09-21 20:24:40 »

So I've been working on my tile map editor and I've been having some issues with massive memory usage spikes when you attempt to save the map

Here's the code I have to save the world to a file. Hopefully this should all make sense:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
   public static void requestWorldSave(World w) throws FileNotFoundException {
      JFrame frame = new JFrame();
      frame.setLocation(0, 0);
      frame.setResizable(false);
      frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      frame.setLayout(null);
      frame.pack();

      Dimension d = new Dimension(400, 400);

      frame.setPreferredSize(d);
      frame.setMaximumSize(d);
      frame.setMinimumSize(d);
     
      JFileChooser jfc = new JFileChooser();
      int r = jfc.showSaveDialog(frame);
      if (r == JFileChooser.APPROVE_OPTION) {
         File f = jfc.getSelectedFile();
         String contents = "";
         
         WorldInfo wi = w.getInfo();
         
//Loop through all the tiles in the world
         for (int x = 0; x < wi.nChunksX * Chunk.chunkW; x++) {
            for (int y = 0; y < wi.nChunksY * Chunk.chunkH; y++) {
               contents += w.getTile(x, y).getID() + " ";
            }
         }
         
         contents = FileEncrypter.encryptString(contents);
         
         PrintWriter pr = new PrintWriter(f);
         pr.write(contents);
         pr.close();
         
//         f = null;
//         contents = "";
//         contents = null;
//         pr = null;
//         jfc = null;
//        
//         System.gc();
      }
   }


You'll see the commented out lines of code was what i tried to reduce to memory usage but it didn't seem to work.

The memory spikes from around 40mb to 400mb, i admit 400mb is manageable and not a great deal but I'd at least like to get to the bottom of why this is happening.

Thanks Smiley

DazKins

Check out my Dev Blog: http://dazkins.tumblr.com
Offline Jeremy
« Reply #1 - Posted 2013-09-21 20:32:10 »

Java strings are immutable, you are constructing way too many strings with the appending operation. Use something like stringbuilder
http://blog.vogella.com/2009/07/19/java-string-performanc/

JevaEngine, Latest Playthrough (This demo is networked with a centralized server model)

http://www.youtube.com/watch?v=rWA8bajpVXg
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.

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

Norakomi (44 views)
2014-10-16 15:22:06

Norakomi (34 views)
2014-10-16 15:20:20

lcass (38 views)
2014-10-15 16:18:58

TehJavaDev (68 views)
2014-10-14 00:39:48

TehJavaDev (68 views)
2014-10-14 00:35:47

TehJavaDev (60 views)
2014-10-14 00:32:37

BurntPizza (73 views)
2014-10-11 23:24:42

BurntPizza (45 views)
2014-10-11 23:10:45

BurntPizza (87 views)
2014-10-11 22:30:10
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!