Microsoft working on new systems language

Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com> Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com>
Sun Dec 29 12:47:29 PST 2013


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.


More information about the Digitalmars-d mailing list