zoukankan      html  css  js  c++  java
  • 内存对齐是什么-对齐的本质是位置和大小-主语是结构体

    目的:保证cpu对结构体数据的存取效率;

    执行:在编译器层面;

    规则:成员的起始位置、结构的大小、数组中的结构等做出的约束;

    参量(对齐因子):缺省按照结构体内的最大尺寸单元对齐;可以指定pack.

    表现:

    结构体的内存对齐形式上像一个报文;

    最大尺寸的的成员变量占据报文的一行;

    小尺寸的成员变量通过共用一行和填充等技术;

    在整体上保证报文的完整性。

    结论:

    1、对象内存模型的数据分布不连续;

    2、具体位置和编译器、编译指令、cpu等有关。

    数据结构内存对齐进化史:

    1、不对齐:所有元素在内存中紧密排列

    优点:节省内存

    缺点:影响cpu访问速度;

    2、全部对齐:所有元素的起始位置都在字长或对齐因子整数倍的位置:

    优点:存取快;

    缺点:内存浪费;

    3、合并对齐:将尺寸小的元算按照原则合并;

    元素起始位置的计算流程;

  • 相关阅读:
    go context
    go etcd
    go logs
    go config
    go tail
    kafka与zookeeper
    go kafka
    go mysql
    array_map array_walk
    单独配置的nginx mysql 重启
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10060083.html
Copyright © 2011-2022 走看看