C# Async/Await is distinct from segmented stacks because they store the
enclosed variables as heap objects rather than on the stack; that means it
goes through the same malloc/garbage collector as any other heap objects
you create. It's purely a compiler fiction to let you write code that
'looks' like it's stack allocating variables.




On Tue, Nov 5, 2013 at 1:42 PM, Brian Anderson <[email protected]>wrote:

> On 11/04/2013 09:21 PM, Oren Ben-Kiki wrote:
>
>> Note that as memory becomes cheaper and larger there will be more
>> pressure on 64-bit OS-es to switch to large pages; the number of pages
>> needed to map several GBs of memory today is already getting out of hand,
>> causing TLB misses to become a performance issue in some cases - imagine a
>> system with 0.xTBs of memory and it becomes ludicrous.
>>
>> So playing tricks with MMU and lazy page loading may not work as well as
>> it does with today's the small 4K page size. Of course, Rust is hardly the
>> only platform that would be affected :-) and ideally, it would be possible
>> to have more flexibility than today in choosing which page sizes are used
>> where in the program's address space... but it remains to be seen how
>> exactly this would play out.
>>
>> Just a point to keep in mind...
>>
>>
> Thanks! That is an interesting point that I hadn't thought about.
>
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to