THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 25/10/2004 at 13:42, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.503
Platform: Windows ;
Language(s) : C++ ;
---------
Well, now I'm miffed. ;)
Here's the deal: I just added zlib compression to my axial vertex map plugin tag in order to reduce memory consumption. It does - by almost 500MB overall (multiple tags)! This is great!
Oh, wait, not so great. GeFree(), using C4D's internal memory system, doesn't seem to free the memory pool for reuse. When the tags are used (Executed), the compressed memory is decompressed into GeAlloc() buffer, the action occurs, the decompressed memory is immediately FREED using GeFree().
At this point, I get a C4D "Not Enough Memory" error doing anything else. Why? Because that 500MB is STILL there and is not reused (as should be, as was indicated by someone in the previous thread)!
1. Do any of you actually use GeAlloc()/GeFree() instead of malloc()/free()?
2. How does one flush freed C4D memory?
3. If the tags are on geometry that has a Generator, will they be Executed during all cache creations in GetVirtualObjects()?
Thanks,
Robert