上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
  2020年2月21日
摘要: 内存模型(Memory Model) 程序内存在地址空间中的分布情况称为内存模型 内存模型由操作系统构建,并且会受到编译模式的影响。 内核空间和用户空间 Windows默认情况下会将高地址的2GB分配给内核 Linux默认情况下会将高地址的1GB分配给内核 Linux下32位环境的用户空间内存分布情 阅读全文
posted @ 2020-02-21 18:25 xiaobaizzZ 阅读(432) 评论(0) 推荐(0) 编辑
摘要: MMU负责将虚拟地址映射为物理地址 对内存权限的控制 MMU除了能够完成虚拟地址到物理地址的映射,还能够对内存权限进行控制。 操作系统在构建页表时将内存权限定义好,当MMU对虚拟地址进行映射时,首先检查当前程序是否有权限使用,如果有,就完成映射,如果没有,就产生一个异常,并交给操作系统处理。 阅读全文
posted @ 2020-02-21 18:21 xiaobaizzZ 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 计算机内存是以字节(Byte)位单位划分的。 CPU通过地址总线来访问内存,64位的CPU一次可以处理8个字节的数据,那么就从内存读取8个字节的数据,少了浪费主频,多了没有用。 阅读全文
posted @ 2020-02-21 17:42 xiaobaizzZ 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 虚拟地址空间:就是程序可以使用的虚拟地址的有效范围。虚拟地址空间的大小由操作系统决定,但还会受到编译模式的影响。 CPU的数据处理能力 地址总线:用于在内存上定位数据,例如:地址总线有20根,寻址能力为2^20 = 1MB 数据总线:位于主板之上,不在CPU中,用于在CPU和内存之间传输数据。决定了 阅读全文
posted @ 2020-02-21 17:10 xiaobaizzZ 阅读(655) 评论(0) 推荐(1) 编辑
摘要: 在C语言中,指针变量的值就是一个内存地址,&运算符的作用也是取变量的内存地址。 include using namespace std; int a = 1, b = 255; int main(){ int pa = &a; cout 中间层思想 使不同程序的地址空间相互隔离 提高内存使用效率 阅读全文
posted @ 2020-02-21 16:37 xiaobaizzZ 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 程序是保存在硬盘中的,要载入内存才能运行,CPU也被设计为只能从内存中读取数据和指令。 阅读全文
posted @ 2020-02-21 16:20 xiaobaizzZ 阅读(1853) 评论(0) 推荐(0) 编辑
摘要: 类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。 只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。 栈上创建对象:有名字。 堆上创建对象:没有名字,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变 阅读全文
posted @ 2020-02-21 16:01 xiaobaizzZ 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 深拷贝+浅拷贝(C++、python) lambda表达式 inline函数 const引用 只能指针 阅读全文
posted @ 2020-02-21 00:32 xiaobaizzZ 阅读(189) 评论(0) 推荐(0) 编辑
摘要: C++中的const更像编译阶段的 define 变量是要占用内存的,即使被const修饰也不例外。m,n两个变量占用不同的内存,int n = m;表示将m的值赋给n。 在C语言中,编译器会先到m所在的内存取出一份数据,再将这份数据赋给n; 在C++中,编译器会直接将10赋给m,没有读取内存的过程 阅读全文
posted @ 2020-02-21 00:17 xiaobaizzZ 阅读(118) 评论(0) 推荐(0) 编辑
  2020年2月20日
摘要: 序列化 反序列化 阅读全文
posted @ 2020-02-20 18:07 xiaobaizzZ 阅读(371) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页