cc1plus: out of memory allocating 33554432 bytes after a total of 38465536 bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi 2 all,

i try still to compile a big source.  (see mails with subj: ' "virtual memory 
exhausted: Out of memory" with a large static  array ')

Now i try another way. 
I generate a source, where i do allocate an array dynamicaly in the heap  and 
fill it out line by line with values. 
The values are irregular, so i have to have every value. (cannot implement 
some prescription for evaluation of them)

The array has 7 dimensions. In every dimension 7 points. (can and will be 
more)


My preprocessed source is ~51Mb and contains lines like 
...
void __create_array()
{
	if (!__FLAG_NAME)
	{
		__ARRAY_NAME = new REAL******[P1X_N];
		for (unsigned i=0; i<P1X_N; i++)
		{
			__ARRAY_NAME[i] = new REAL*****[P1Y_N];
			for (unsigned j=0; j<P1Y_N; j++)
			{
				__ARRAY_NAME[i][j] = new REAL****[P1Z_N];
				for (unsigned kk=0; kk<P1Z_N; kk++)
				{
					__ARRAY_NAME[i][j][kk] = new REAL***[P2X_N];
					for (unsigned l=0; l<P2X_N; l++)
					{
						__ARRAY_NAME[i][j][kk][l] = new REAL**[P2Y_N];
						for (unsigned mm=0; mm<P2Y_N; mm++)
						{
							__ARRAY_NAME[i][j][kk][l][mm] = new REAL*[P2Z_N];
							for (unsigned ss=0; ss<P2Z_N; ss++)
							{
								__ARRAY_NAME[i][j][kk][l][mm][ss] = new REAL[KF_N];
							}
						}
					}
				}
			}
		}
	
...
__ARRAY_NAM[0][0][0][0][0][0][0] = 0.00034;
__ARRAY_NAM[0][0][0][0][0][0][1] = 0.00024;
...
__ARRAY_NAM[6][6][6][6][6][6][5] = 10.00034;
__ARRAY_NAM[6][6][6][6][6][6][6] = 0.00024;
....

		__FLAG_NAME = true;
	}
}



One routine to clean the memory and "main" routine, where i play with the 
array (interpolate, build a graph of function and so on.)

If i compile a preproccessed source i get the error message "cc1plus: out of 
memory allocating 33554432 bytes after a total of 38465536 bytes"

How i have to interpret it? 
What the values " 33554432 " and "38465536 " are?


About the system. 
Linux NAME 2.6.20-rc7-2-default #1 SMP Thu Feb 1 13:34:44 UTC 2007 i686 i686 
i386 GNU/Linux

g++ (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux)

3Gb RAM, 120 Gb swap. 

Regards,
Pavel.


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux