博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存对齐详解
阅读量:2177 次
发布时间:2019-05-01

本文共 457 字,大约阅读时间需要 1 分钟。

内存对齐的主要目的是为了减少cpu寻址的次数。

我们先来了解一下内存对齐的规则:
所定义变量的初始地址是该变量类型所占字节的整数倍。
比如int类型的变量,它的起始地址一定是4的整数倍,0,4,8等。
short 类型的变量的起始地址是2的整数倍,0,2,4,6,8等。

来看一个例子。

//64bit#include
#include
using namespace std;struct node{
char a; int b; double c; char f; short d; int e;};int main(){
cout<
<

在这个结构体中内存分配是这样的,一共占了24个字节。

在这里插入图片描述

这样我们cpu要找到b的地址,只需寻址4-7一次就ok。
假如内存不对齐
在这里插入图片描述
我们cpu就要先寻址0-3,留下1-3,然后寻址4-7,留下4,然后再把1-3和4 拼凑在一起,需要俩次寻址。
到此对内存对齐大家应该都理解了吧。

转载地址:http://cgfkb.baihongyu.com/

你可能感兴趣的文章
[Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)
查看>>
Jmeter之正则
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【English】【托业】【四六级】写译高频词汇
查看>>
【托业】【新东方全真模拟】01~02-----P5~6
查看>>
【托业】【新东方全真模拟】03~04-----P5~6
查看>>