Taking too long to print out 500x500 2D Array

Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: May 2008
Posts: 33
Reputation: gotm is an unknown quantity at this point 
Solved Threads: 0
gotm gotm is offline Offline
Light Poster

Taking too long to print out 500x500 2D Array

 
0
  #1
33 Days Ago
So one of the problems I have been having with my programs is the length of time it takes to print out a pixel map into the XPM file.

I tested it with like :
500 rows and 2 columns -- 1 second
500 rows and 10 columns -- a few seconds
500 rows and 200 columns -- about 20 seconds

When I try and output the full 500x500 grid after about 4 minutes it's still not done.

Here is the only method I have been using to do this, maybe there is a more efficient way of doing it that I don't know about?

  1. public void addRowsToGrid()
  2. {
  3. String allRows = "";
  4.  
  5. for(int i = 0;i < 500; i++) {
  6. allRows += "\"";
  7. for(int j = 0;j < 500; j++) {
  8. allRows += grid[i][j].getColor();
  9. }
  10. if (i != 499) {allRows += "\",\n";}
  11. else if (i == 499) {allRows += "\"\n";}
  12. }
  13. allRows += "};\n";
  14.  
  15. XPM += allRows;
  16. }

Can I get some feedback?
Reply With Quote Quick reply to this message  
Join Date: Sep 2008
Posts: 1,606
Reputation: BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all 
Solved Threads: 205
BestJewSinceJC BestJewSinceJC is offline Offline
Posting Virtuoso
 
0
  #2
33 Days Ago
Because Strings are immutable, so every time you say string+= in the background, another String is being created and all of the contents are copied into memory. This process takes a lot of time once the String gets large. Use the StringBuilder class instead.

P.S. I made that mistake on a graded project in the past - very embarrassing when my program ran quickly and properly on small to medium sized input files but then when a long novel such as, I don't know, the Iliad is supplied, my project didn't finish fast enough for the TA to care (within 30 seconds as I later learned). But it sure taught me to pay more attention to little details and also to test for more input conditions before assuming I was finished!
Last edited by BestJewSinceJC; 33 Days Ago at 8:56 pm.
Out.
Reply With Quote Quick reply to this message  
Reply

Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC