> How are you avoiding String Concatenation ? TextFields as a Example > only take Strings
I don't really use this myself because I don't really strings in inner loops. First, you want to make those time elements draw/update as least as possible. If not, you can use a string buffer: http://developer.android.com/reference/java/lang/StringBuilder.html A) Don't know, ddms works great for me. Try using it outside of eclipse, it works better by itself. b) I don't think there is a way, try playing with ddms. (I believe outside of eclipse it has more features) c) Depending on how you communicate with your inner/display thread, I use locks for speed. On Tue, Sep 14, 2010 at 2:39 PM, Andreas <[email protected]> wrote: > How are you avoiding String Concatenation ? TextFields as a Example > only take Strings > And if you have a Score, or Time Element that Shows Some Numbers i > wasn't able to get around creating a String implicitly. > > > Currently i'am testing on my Motorola Milestone. On the Emulator it > even runs slower with constant hiccups. > > Some other Problem while researching the hiccups: > a) > Currenty the Method Profiling in Eclipse isnt' working because of a > error > "Unable to open trace file 'sdcard/com.an........trace' : Permission > Denied. > Kind of Strange because a added <uses-permission > android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> already in > the Manifest. > > b) Is there any way that logcat shows which objects where recycled ? > Currently it only says GC freed xyz > Simply because the Allocation View don't show me Thread Objects that > may cause the GC to run so often. > > c) Is there any big disadvantage if the GameThread is a "outer > Thread"..not like in all the examples (there it.s a inner class) > > thanks 4 feedback > > > > On 14 Sep., 22:45, Miguel Morales <[email protected]> wrote: >> Are you using the emulator or a hardware device for testing? I'm sure >> there's gotta be something that's allocating in your code. In my >> personal experience, I've gotten the GC down to once a minute at the >> worst. A lot of the time you can't fully get rid of GC hiccups >> because of background applications that allocate objects. >> >> Make sure you're not appending any string, check any other background >> code that's running (like your logic loop). You have to make sure >> there's no allocations throughout any long running or looping code. >> >> I'm fairly sure the canvas onDraw method doesn't allocate anything by >> itself, and you can get some decent performance out of it without >> going to openGL. >> >> I'm sure you've seen this but just in >> case:http://code.google.com/events/io/2009/sessions/WritingRealTimeGamesAn... >> It outlines some common pitfalls. >> >> >> >> On Tue, Sep 14, 2010 at 1:02 PM, Andreas <[email protected]> wrote: >> > to 1) >> >> > Did that already. I ruled out everything that was creatinglike shadow >> > Copies or String Concat. I re-implement my own FastList instead of any >> > ArrayList oder Hashmap. >> > To there is nearly nothing that is created intentionally. But the GC >> > is anyway running every couple of seconds. Sometimes only 50 ms >> > somtimes 500 ms. The thing >> > might be, hat you can't tell the GC that he should hold on for some >> > time. It's not in my hands, and since everything in 2d drawing and >> > standard Android Libs is in the >> > GC domain and will be interrupt the game for some ms. >> >> > 2) i think i have about max 100-150 Objects moving around in my >> > screen. + the "not moving" static objects. I tested it with 200 >> > Objects but the only flaw i saw was the GC hiccups >> > issue. >> >> > 3)opengl has a hard learning curve. And since i develop Java for about >> > 10 Years now i thought i could handle the graphic stuff via the >> > canvas / draw architecture. Since this might be a KO Criteria I'm >> > kind of afraid to rewrite my game to use the andengine. >> > I've already read about it...and saw some examples...but I'm not sure >> > if how long it will take to get me going with this engine. I would >> > love to see a engine i could "plug in my app". I design my app that >> > way, that i have 2 major methods called in my game loop >> >> > upateGameData() >> > and >> > drawGameData() >> >> > in the draw Method i iterate over all different gameObect Lists...like >> >> > drawMonsters(c) >> > drawMissels(c) >> > drawStaticBlabla(c). >> >> > UpdateGameData does the Math (e.g. positioning for animations )and is >> > kind of unrelated with drawing besides some things the Update Methods >> > have to know....like Resolution / Borders . >> >> > everything that can be draw on a canvas has to implement a update(c) >> > method where the object draws itself. Would be cool to replace the >> > "c" for canvas with a OPenGL maybe Andengine Surface but i don't think >> > that's gonna be the case. Would be to nice ^^ >> >> > On 14 Sep., 15:39, Justin Giles <[email protected]> wrote: >> >> Just a few moderately uninformed comments/questions... >> >> >> 1) Use DDMS and MAT to try to nail down any possible memory issues that >> >> you >> >> might be overlooking. >> >> >> 2) Canvas 2D does have significant limitations compared to OpenGL when it >> >> comes to a large number of sprites on the screen at once. Is this a >> >> possible issue for you? >> >> >> 3) You might check out Andenginehttp://www.andengine.org(notaffiliated >> >> with them). It is a 2D opengl framework that is a whole heck of a lot >> >> easier to get a 2D game up and running than using raw openGL (in my >> >> opinion). >> >> >> Justin >> >> >> On Tue, Sep 14, 2010 at 7:44 AM, Andreas >> >> <[email protected]>wrote: >> >> >> > Hi Folks, >> >> >> > im currently playing around with a Game that architecture is basically >> >> > like the example 2d Games like JetBoy / LunarLander and so on. But as >> >> > things now running (and animating continuously) they have kind of >> >> > "hiccups" when the GC is running. I have done all i can to allocate as >> >> > much Objects in front. There is nearly nothing that is created "new" >> >> > besindes some Strings that are used to set the Score and so on. >> >> > (TextView doesn't take int's =( - >> >> >> > So do you have similar Problems that the GC is "lagging" your 2s >> >> > game ? any solutions ? >> >> >> > Thanks for suggestions >> >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups "Android Developers" group. >> >> > To post to this group, send email to [email protected] >> >> > To unsubscribe from this group, send email to >> >> > [email protected]<android-developers%[email protected]> >> >> > For more options, visit this group at >> >> >http://groups.google.com/group/android-developers?hl=en >> >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Android Developers" group. >> > To post to this group, send email to [email protected] >> > To unsubscribe from this group, send email to >> > [email protected] >> > For more options, visit this group at >> >http://groups.google.com/group/android-developers?hl=en >> >> -- >> ~ Jeremiah:9:23-24 >> Android 2D >> MMORPG:http://developingthedream.blogspot.com/,http://diastrofunk.com,http://www.youtube.com/user/revoltingx > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- ~ Jeremiah:9:23-24 Android 2D MMORPG: http://developingthedream.blogspot.com/, http://diastrofunk.com, http://www.youtube.com/user/revoltingx -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

