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
