jPCT-AE - a 3d engine for Android > Support
GC frees too much
vael:
Hello,
I'm experiencing lags because of GC and I am rendering only like 30-40 box primitives at a time. I reuse all the objects so I actually I stop allocating memory after 2-3 seconds. But here is what I see in log:
--- Code: ---D/FREEROLL( 650): CURRENT FPS: 30
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 40
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 50
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 44
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 52
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 56
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/dalvikvm( 650): GC_FOR_MALLOC freed 39703 objects / 1584536 bytes in 77ms
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 45
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 60
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 54
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 50
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/dalvikvm( 173): GC_EXPLICIT freed 487 objects / 48936 bytes in 837ms
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 45
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/dalvikvm( 650): GC_FOR_MALLOC freed 47179 objects / 1782160 bytes in 78ms
D/FREEROLL( 650): CURRENT FPS: 41
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 56
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 57
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 49
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
E/Tethering( 85): active iface (usb0) reported as added, ignoring
I/jPCT-AE ( 650): Static references cleared...
D/LocationMasfClient( 85): getNetworkLocation(): Returning cache location with
accuracy 3875.0
D/FREEROLL( 650): CURRENT FPS: 47
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 47
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/dalvikvm( 650): GC_FOR_MALLOC freed 48783 objects / 1835704 bytes in 77ms
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 43
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 52
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 47
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 54
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 50
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/dalvikvm( 650): GC_FOR_MALLOC freed 48624 objects / 1832888 bytes in 76ms
D/FREEROLL( 650): CURRENT FPS: 45
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 53
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 61
I/jPCT-AE ( 650): Static references cleared...
I/jPCT-AE ( 650): Static references cleared...
D/FREEROLL( 650): CURRENT FPS: 58
--- End code ---
as you see it frees about 1.5mb every few seconds. I have no any dynamic light in the world. When I had it, I had like 1.5mb free per second.
So my question is: why does jPCT needs so much memory to just render? or do I do something wrong?
Thank you
EgonOlsen:
Actually, it doesn't allocate any additional memory just for the rendering. However, some other methods do/have to and not all of them have been tweaked to minimize object creation. It's impossible to tell the source of this from your description alone. Do you have a test case?
vael:
The source is quite big already so lets try to find it out this way:
I use these methods in the main loop:
Camera's:
rotateX(float);
setPosition(float, float, float);
setOrientation(SimpleVector, SimpleVector);
Object3D's:
translate(float, float, float);
rotateAxis(SimpleVector, float);
can they cause this? as I said I am having about 40 boxes at a time
EgonOlsen:
Are you creating new SimpleVectors in each iteration? If so, don't do this and recycle old ones.
And which version of jPCT-AE are you using? Older versions weren't as gc friendly as newer ones.
vael:
I use an up-to-date version of jPCT.
And no, I don't create new SimpleVector's but maybe those methods do?
Navigation
[0] Message Index
[#] Next page
Go to full version