通常指针的大小等于"宽度" CPU,因此指针通常可以访问每个系统地址。
在64位系统上使用16位指针应该允许在与单个64位指针相同的内存区域中容纳4个16位指针,但是16位指针只允许寻址2 ^ 16个位置。
我的想法不是关于节省记忆,而是关于潜在的性能优势。这个想法基本上是以65635的块为单位分配内存,并使用16位指针来解决那些"虚拟" 16位地址空间。
这可能吗?我应该尝试这样做,即它会提供性能优势吗?
答案 0 :(得分:5)
更有可能是性能受到打击。现代CPU可以轻松访问32位和64位数据宽度。如果您有16位数据,则需要屏蔽等,以计算CPU中的实际地址。
进一步阅读的指针是未对齐的访问权。
答案 1 :(得分:2)
如果你有一个32/64位系统,它有足够的RAM,你的方案的优化优势将被实现它的复杂性所抵消。您需要确保它正常工作,并且您的方案比直接指针访问操作慢得多。