Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
通常,指针的大小等于 CPU 的“宽度”,因此指针通常可以访问每个系统地址。
在 64 位系统上使用 16 位指针应该允许将 4 个 16 位指针放置在与单个 64 位指针相同的内存区域中,但是 16 位指针仅允许寻址 2^16 个位置。
我的想法不是关于节省内存,而是关于潜在的性能优势。这个想法基本上是以 65635 的块分配内存并使用 16 位指针来寻址那些“虚拟”16 位地址空间。
这可能吗?我应该尝试这样做,即它会提供性能优势吗?
更有可能是性能受到打击。现代 CPU 可以轻松访问 32 位和 64 位数据宽度。如果您有 16 位数据,则需要屏蔽等来计算 CPU 中的实际地址。
用于进一步阅读的指针是非对齐访问。
很有可能,如果您有一个 32/64 位系统,它有足够的 RAM,您的方案的优化优势将被实现它的复杂性所抵消。您需要确保它正常工作,并且您的方案将比直接指针访问慢得多。