Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Another reason 64 bit is shit

Name: Anonymous 2015-07-28 19:56

A bit of background is in order. GHC allocates memory from the operating system in units of aligned megabytes. So it owns a collection of megabytes that might be anywhere in the address space. For every pointer it sees, the GC asks the question “is this a pointer into the heap?”, and the memory manager should return true for any of the memory that GHC has allocated, and false otherwise. This is the job of the HEAP_ALLOCED() macro.

On a 32-bit machine, answering the question is easy: a megabyte is 20 bits, so we only need a 12-bit lookup table, and even using a full byte for each entry, that’s just 4KB.

On a 64-bit machine, it’s much harder. Even taking advantage of the fact that only 48 bits are available address space on x86_64 architecture machines, that still leaves 28 bits, which is a 256MB table (32MB using bits instead of bytes). This is not likely to be an acceptable memory overhead.

https://simonmar.github.io/posts/2015-07-28-optimising-garbage-collection-overhead-in-sigma.html

Name: Anonymous 2015-08-02 11:29

Bumping a programming-related thread.

Name: Cudder !cXCudderUE 2015-08-02 14:32

>>40
allocates 2 petabytes of address space
Go ahead and try using all of it, I dare you. You still need to use memory to keep track of it:

http://blogs.msdn.com/b/slavao/archive/2005/06/03/424905.aspx

They may have changed the behaviour of VirtualAlloc in newer versions but they certainly didn't change it for the better!

Name: Anonymous 2015-08-02 16:45

>>42
Go ahead and try using all of it, I dare you.

Damn, you are a literal retard.

Name: Anonymous 2015-08-02 20:13

I double dog dare you to check these dubs.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List