The address space issue is more important than it initially seems: on win32, by default an application will get 2GB of address space (the upper 2GB being reserved for the kernel). Due to memory fragmentation, an application will generally start seeing failed memory allocations a while before it’s actually using 2GB of memory. In the context of Sublime Text, this can be an issue if you’re loading huge log files, although I’ve not heard of any issues in practice.
Aside from the address space, there are performance benefits for 64 bit applications on x86 CPUs, for a few reasons:
- Twice as many registers
- More efficient calling conventions, making function calls cheaper
- Modern instructions (e.g., CMOV, SSE2) are guaranteed to be supported, whereas compilers will, by default, not make use of these for 32 bit code for compatibility with older CPUs.
On the down side, pointers now take up twice as much memory, effectively shrinking your cache, but it’s outweighed by the above benefits.