Why is D's GC slower than GO's?

Walter Bright newshound2 at digitalmars.com
Mon Oct 31 06:06:36 UTC 2022


On 10/29/2022 11:48 PM, Paulo Pinto wrote:
> On Sunday, 30 October 2022 at 01:51:46 UTC, Walter Bright wrote:
>> On 10/29/2022 1:11 PM, Paulo Pinto wrote:
>>> Again mixing languages,
>>>
>>> __gc is from Managed C++, .NET 1.0
>>>
>>> C++/CLI, .NET 2.0 onwards, uses ^ for reference types and gcnew for GC heap.
>>
>> What's the difference between __gc* and ^ ?
> 
> Between Managed C++ and C++/CLI, none.
> 
> The latter replaces the former, Managed C++ died with .NET 2.0 release.
> 
> If we also bring C++/CX into the picture, ^ is a tracing GC pointer to .NET 
> types in C++/CLI, while on C++/CX it is compiler native support for COM types 
> with the compiler doing AddRef/Release calls on its own.
> 
> In modern native frameworks, WRL, WIL and C++/WinRT, the ^ get replaced by 
> library smart pointer classes.

Thank you for the explanation. It's a syntactical change, not a semantic one.


More information about the Digitalmars-d mailing list