猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
内存对齐的目的
内存对齐的目的
诚然,我不明白。假设您有一个内存,内存字长度为1字节。为什么不能访问未对齐地址上的单个内存访问中的一个4字节长的变量(即不能被4整除),就像对齐地址的情况一样?
12345678_0001
浏览 769
回答 3
3回答
犯罪嫌疑人X
你可以用一些处理器(尼哈伦人能做到这一点),但是以前所有的内存访问都是在64位(或32位)线上对齐的,因为总线是64位宽的,所以您必须一次取64位,并且用对齐的64位“块”来获取这些数据要容易得多。所以,如果你想要一个字节,你取了64位块,然后屏蔽掉你不想要的比特。如果您的字节位于正确的一端,那么简单且快速,但是如果它位于64位块的中间,则必须屏蔽不需要的位,然后将数据转移到正确的位置。更糟糕的是,如果您想要一个2字节变量,但它被分割成两个块,那么这就需要双倍于所需的内存访问。因此,当每个人都认为内存很便宜时,他们只是让编译器将数据对齐在处理器的块大小上,这样您的代码就会以浪费内存为代价,运行得更快、效率更高。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
算法与数据结构
数据结构中,与所使用的计算机无关的数据是什么?
1 回答
学完C语言之后是先学数据结构还是先学JAVA好呢?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续