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

Walter Bright newshound2 at digitalmars.com
Sun Oct 30 22:21:12 UTC 2022


On 10/30/2022 12:26 PM, Paulo Pinto wrote:

> You can read the documentation over here,
> 
> https://clang.llvm.org/docs/AutomaticReferenceCounting.html
> 
> https://developer.apple.com/library/archive/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011226
> 
> https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html

I didn't realize you classified ARC as a separate pointer type. You can't do 
pointy things with it like pointer arithmetic, or taking the address of a 
variable with it. It's sort of like an associative array in D is a special type, 
but not what I'd consider a pointer type. Even class references in D are not 
really a special pointer type.

But thank you for the references.

> And if there is some legacy Objective-C 2.0 GC code lying around, there is
> 
> https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/GarbageCollection/Introduction.html#//apple_ref/doc/uid/TP40002431
> 
> Basically the attribute qualifiers for pointers and class properties, specially 
> in Objective-C case, and the Swift Objective-C interop, influence the semantics 
> and type semantics of what ARC does with the pointers and their compatibility 
> with raw pointers that aren't managed by ARC.
> 
> And the now dead tracing GC experiement, also had its own flavour of GC managed 
> pointers alongside raw ones.

Does that mean it had managed pointers, and abandoned them?


More information about the Digitalmars-d mailing list