Microsoft working on new systems language

Walter Bright newshound2 at digitalmars.com
Sun Dec 29 13:39:50 PST 2013


On 12/29/2013 12:47 PM, "Ola Fosheim Grøstad" 
<ola.fosheim.grostad+dlang at gmail.com>" wrote:
> On Sunday, 29 December 2013 at 20:36:27 UTC, Walter Bright wrote:
>> I'll reiterate that the GC will NEVER EVER pause your program unless you are
>> actually calling the GC to allocate memory. A loop that does not GC allocate
>> WILL NEVER PAUSE.
>
> That's fine, except when you have real-time threads.
>
> So unless you use non-temporal load/save in your GC traversal (e.g. on x86 you
> have SSE instructions that bypass the cache), your GC might trash the cache for
> other cores that run real-time threads which are initiated as call-backs from
> the OS.
>
> These callbacks might happen 120+ times per seconds and your runtime cannot
> control those, they have the highest user-level priority.
>
> Granted, the latest CPUs have a fair amount of level 3 cache, and the most
> expensive ones might have a big level 4 cache, but I still think it is a
> concern. Level 1 and 2 caches are small: 64KB/128KB.

Since you can control if and when the GC runs fairly simply, this is not any 
sort of blocking issue.


More information about the Digitalmars-d mailing list