THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 10/08/2010 at 22:38, xxxxxxxx wrote:
Cinema 4D Version: 8.2
Platform: Windows ;
Language(s) : C++ ;
i have a question to some restriction of the SDK. I created a plugin within i generate a huge list of structures with the gNew() command. And sometimes i don't get memory from cinema4d back. Only a short message dialog pop up with the hint "Out of memory". Is there a limitation in Cinema4D or is this limit from the operating system given?
On 11/08/2010 at 03:10, xxxxxxxx wrote:
What is your operating system? 32-bit systems only allow allocation of 2 GB RAM.
On 11/08/2010 at 04:13, xxxxxxxx wrote:
Yes, WindowsXP 32bit version.
On 11/08/2010 at 10:12, xxxxxxxx wrote:
If you are doing a large memory block allocation in one call then inherent memory segmentation may be an issue. As you try to allocate a larger block the likelihood that such a large block is available contiguously decreases despite the fact that enough memory is available generally. In this case you really need to do a rough precalculation of the size and segment the allocations (unfortunately). Just because you have 2GB available doesn't mean that you can allocate a 2GB block in one swoop, for instance.
As the case is with languages requiring developer memory management, you will need to balance the size of memory allocations so that you aren't allocating a million 128-byte blocks or one 128MB block. Better to use a reasonable compromise, like 1-2MB.
On 12/08/2010 at 02:49, xxxxxxxx wrote:
And of course, use the debug console to find memory leaks (put a file named c4d_debug.txt in the current working directory).
On 13/08/2010 at 00:21, xxxxxxxx wrote:
thanks for the hints. I beliebe I have to recalculate the memory consumption.
I using the c4d_debug.txt to find memory leaks (this works).