2

通常,指针的大小等于 CPU 的“宽度”,因此指针通常可以访问每个系统地址。

在 64 位系统上使用 16 位指针应该允许将 4 个 16 位指针放置在与单个 64 位指针相同的内存区域中,但是 16 位指针仅允许寻址 2^16 个位置。

我的想法不是关于节省内存,而是关于潜在的性能优势。这个想法基本上是以 65635 的块分配内存并使用 16 位指针来寻址那些“虚拟”16 位地址空间。

这可能吗?我应该尝试这样做,即它会提供性能优势吗?

4

2 回答 2

5

更有可能是性能受到打击。现代 CPU 可以轻松访问 32 位和 64 位数据宽度。如果您有 16 位数据,则​​需要屏蔽等来计算 CPU 中的实际地址。

用于进一步阅读的指针是非对齐访问。

于 2011-11-29T13:51:05.120 回答
2

很有可能,如果您有一个 32/64 位系统,它有足够的 RAM,您的方案的优化优势将被实现它的复杂性所抵消。您需要确保它正常工作,并且您的方案将比直接指针访问慢得多。

于 2011-11-29T13:52:18.563 回答