在64位系统上有不到8字节的指针是否有价值?

Pet*_*tra 2 delphi 64-bit pointers

我们知道在64位计算机中,指针将是8字节,这将使我们能够处理大量内存.但另一方面,普通人现在可用的存储器高达16G,这意味着目前我们不需要8个字节用于寻址,而是5个或最多6个字节.

我是Delphi用户.

问题(可能是64位编译器的开发人员)是:

是否可以在某处声明您希望用于指针的字节数,这对整个应用程序都有效.如果您有数百万个指针的应用程序,并且您将能够声明指针只有5个字节,那么将占用的内存量将会低得多.我可以想象这可能很难实现,但无论如何我对它很好奇.

提前致谢.

And*_*and 5

一百万个64位指针将占用不到八兆字节.没什么.典型的现代计算机具有6 GB的RAM.因此,8 MB仅略高于RAM总量的1 permille.


Bar*_*lly 5

8字节指针的精度过高还有其他用途:例如,您可以将引用的类(作为序数索引)编码到指针本身中,从可用的64位中窃取10或20位,留下超过足以满足当前可用的系统.

这可以让编译器编写器在确认实例是预期类型时,在没有间接成本的情况下对虚方法进行内联缓存.