Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Actually, no. These tag bits are usually stored in the lowest bits which are zero for all pointers (you would be mad not to align your data structurs to the four or eight byte boundaries your hardware uses for memory access). So you get the full width for pointers, but reduced width for your fixnums, because you have to set one of the least significant bits of the machine word to one to distinguish it from a pointer. That you still can't use the full 4GB of a 32 Bit address space is due to the fact that the OS needs some address space for itself, the details of this vary from OS to OS and what the runtime of your language does with the addresses the OS allows it to use. So beeing able to use more than 2GB on a 32 bit architecture should not be taken for granted.


While that's true for some things, that doesn't account for the memory overhead of a copying garbage collector.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: