c++在32/64位系统上使用16位指针
c++ using 16bit pointers on 32/64 bit systems
指针的大小通常等于CPU的"宽度",因此指针通常可以访问每个系统地址。
在64位系统上使用16位指针应该允许在同一个内存区域中容纳4个16位指针和一个64位指针,但是一个16位指针只允许寻址2^16个位置。
我的想法不是关于节省内存,而是关于潜在的性能优势。这个想法基本上是以65635为块分配内存,并使用16位指针来寻址那些"虚拟的"16位地址空间。
这可能吗?我应该尝试这样做吗,也就是说,它会带来性能上的好处吗?
更有可能的是这会影响性能。现代CPU可以轻松访问32位和64位数据宽度。如果你有16位的数据,你需要屏蔽等等来计算CPU中的真实地址。
进一步读取的指针是非对齐访问。
很可能,如果您有一个32/64位系统,它有足够的RAM,那么您的方案的优化好处将被实现它的复杂性所抵消。您需要确保它正确工作,并且您的方案将比直接指针访问慢得多。
相关文章:
- 将浮动的heightmap数组导出为16位原始值
- 宽度为奇数的16位纹理为片状
- OpenGL 16 位模板缓冲区?
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 16 位到 10 位转换代码说明
- AVX2 整数乘以有符号 8 位元素,产生有符号 16 位结果?
- C++将 16 位值转换为 32 位值
- 24 位地址和 24 位算术与 24 位地址与 16 位地址算术之间的区别?
- 16 位系统中的程序如何访问大于 65535 的整数,但不能访问地址
- 将 64 位指针打包到 4 个 WORD 中
- 将 Uint8(浮点AUDIO_F32)转换为int16_t(16 位 PCM)
- AVX2 SIMD Instrinsics 16 位到 8 位,反之亦然
- 如何打开和读取16位.raw文件Vc++(Wince 平台)
- MongoDB C++ 驱动程序 - 8 位和 16 位整数?
- 键入从 DWORD 到 64 位指针的强制转换警告
- 使用 OpenCV 和 C++将 16 位灰度图像更改为彩色图像
- 对 32 位整数进行哈希处理比对 3 个 16 位整数的哈希进行按位运算慢?
- OpenCV 实感 16 位深度图像
- 是否可以安全地假设64位指针中的16个高位(2个对我来说足够了)是未设置的
- c++在32/64位系统上使用16位指针