Read-only archive of the All About Symbian forum (2001–2013) · About this archive

Max. Heap RAM of Series60 phones

9 replies · 7,295 views · Started 17 December 2003

Hi,

I am trying to discover the size of the max. heap RAM of Series 60 phones, I have the partial data :

Model operating RAM max. heap

Nokia 7650/3650 : 3-3.5 MB, 1.4 MB
Nokia N-Gage : 11 MB, 2.8 MB
Nokia 6600 : 10 (?) MB, 3.0 MB
Sendo X : 6 MB, ?? MB
Siemens SX1 : 9 MB, 2 (?) MB

You are welcome to complete or confirm this table.

Is the max. heap size a limitation for programs written with any language, C++, Java, etc. ? I am used to EPOC32 and Series 80 where all the available RAM can be allocated.

How a N-Gage can deal with large games with "only" 2.8 MB ? Multiple threads ?

Thanks in advance,

Roberto

Originally posted by Roberto
Hi,

I am trying to discover the size of the max. heap RAM of Series 60 phones, I have the partial data :

Model operating RAM max. heap

Nokia 7650/3650 : 3-3.5 MB, 1.4 MB
Nokia N-Gage : 11 MB, 2.8 MB
Nokia 6600 : 10 (?) MB, 3.0 MB
Sendo X : 6 MB, ?? MB
Siemens SX1 : 9 MB, 2 (?) MB

You are welcome to complete or confirm this table.

Is the max. heap size a limitation for programs written with any language, C++, Java, etc. ? I am used to EPOC32 and Series 80 where all the available RAM can be allocated.

How a N-Gage can deal with large games with "only" 2.8 MB ? Multiple threads ?

Thanks in advance,

Roberto


Just wondering whether you are somehow confusing heap and stack - certainly you should be able to alloc mem from heap all the way up to what's available in each device. How did you get that 2.8MB for N-Gage in the first place?

Hi,

The Developer Portal Team of Siemens have confirmed that :

"The heap is unlimited for build-in
applications and J2ME MIDlets. The 2MB limit is for 3rd party C++
applications, so it applies in your case."

Completing the table :

Model operating RAM max. heap size

Nokia 7650/3650 : 3-3.5 MB, 1.4 MB
Nokia N-Gage : 11 MB, 2.8 MB
Nokia 6600 : 10 (?) MB, 3.0 MB
Sendo X : 6 MB, ?? MB
Siemens SX1 : 9 MB, 2 MB

This maximum heap size is for each process. So, if you have a big app in C++ and wants to allocate 4 MB of RAM, sorry, it would not be possible, even if there is more than 4 MB of free RAM.

I do not agree with these low values for the max. heap size. It should be approx. half (or more) the free RAM of each smartphone. The Nokia 92xx Communicator and P800/900 does not have this limitation, as far as I know.

Best regards,

Roberto

Somehow this just doesn't make sense. To make sure I only tried

HBufC8* bytes;
bytes = HBufC8::NewL(10000000);
if (!bytes)
User::Panic(_L("No heap"😉,0);

in a single process using SDK 1.0 and N-Gage and everything works fine. For HBufC8 SDK states:
"8 bit heap descriptor. This is a descriptor class which provides a buffer of fixed length, allocated on the heap, for containing and accessing data."

Any explanations for the 2.8Mbyte limit mentioned above, RHeap or something else?

If the limit would be true for a single process how come that games like FIFA 2004 uses ~5Mbytes right after launch if you check the heap using for example

TInt iFreeMem;
HAL::Get(HALData::EMemoryRAMFree, iFreeMem);

and I found just one process for it (FIFA). Strange...

Are you sure on the 2.8MB limit of space for n-gage?

The reason I quesiton it is because I am working on a ngpc emu at the moment. For right now I have it creating a heap of memory and allocating from it to store the rom file.

I have no problem loading in a 4MB game image file into the space.

I do how ever have problems with the 3650 not allowing for me to create a heap greater then 512KB.

This is all that I am doing

RomHeap = User::ChunkHeap( NULL, rom.length, rom.length + 64 );
rom.data = (_u8 *)RomHeap->Alloc( rom.length );

if( rom.data == NULL )
{ // Add extra code here }

Everything works perfectly fine.
do note the +64 I added in for safty even though it's not needed.

Hi guys,

I have seen this max. heap sizes on the Nokia and Siemens sites.

The Developer Portal Team of Siemens have also confirmed that there is a max. heap size for mortals like us, not for the built-in software.

I would love to discover that they are wrong, because I need a lot of memory to try to port Yacas :

www.robertocolistete.net/yacas/

for Series 60.

I have recently bought a Nokia 7650, so I will try to experiment a simple C++ program to test whether the 1.4 MB of max. heap size is real or not.

Maybe it is just a limit for J2ME.