Next-gen GC performance, NEW AGE of Allocations Speed (to Microsoft) RRS feed

  • General discussion

  • When i tested GC performance of .NET 4.0 i found at least 1 huge perforamnce issues.

    So if you really care about C# users or about C# future, you will make the following:

    1) DO NOT "ZERO" memory synchronously before allocation (like .NET 4.0 does). Next-Gen is to Zero memory ASYNCRONOUSLY (in other thread) and right AFTER old object release, NOT before new allocation. This will BOOST memory allocation speed to the heavens. In short words all memory must be zeroed beforehand.

    2) Make private memory allocation pool PER every processor Core, so lock (synchronize) memory allocations only inside Core. This will make better allocations speed scalability for multi CORE/processors.


    This 2 improvements will make memory allocations no longer "time critical", this will be new age of memory allocations with FREE cost, no longer need for everywhere precashing and so on. With this imrovements, when you need memory allocation, just allocate it! without any time cost: for syncronization, zeroing or searching for free block. This will be the TOP of memory allocation performance, new age of memory (objects) allocations with really free time penalty.

    (Of course with combination of devidable by 2 memory blocks allocations, for O(1) fast free block searches. Something like in Unreal Engine Fast Windows Allocator, i think this is already implemented in current GC, at least i hope i am right, because current GC allocation not so slow like C++ allocation).

    Friday, November 18, 2011 9:52 AM

All replies