现代操作系统都使用分页机制来管理内存,这使得每个程序都拥有自己的地址空间。每当程序使用虚拟地址进行读写时,都必须转换为实际的物理地址,才能真正在内存条上定位数据。如下图所示: 内存地址的转换是通过一种叫做页表(Page Table)的机制来完成的,这是本节要讲解的重点,即: 页表是什么?为什么要采用 ...
分类:
编程语言 时间:
2021-06-18 20:12:38
阅读次数:
0
通过页表完成虚拟地址和物理地址的映射时,要经过多次转换,还要进行计算,如果由操作系统来完成这项工作,那将会成倍降低程序的性能,得不偿失,所以这种方式是不现实的。 MMU 在CPU内部,有一个部件叫做MMU(Memory Management Unit,内存管理单元),由它来负责将虚拟地址映射为物理地 ...
分类:
编程语言 时间:
2021-06-18 20:12:19
阅读次数:
0
设计模式:解决问题最行之有效的思想。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 java中有23种设计模式: 单例设计模式: 解决的问题:保证一个类在内存中的对象唯一性。 比如:多程序读取一个配置文件时, ...
分类:
编程语言 时间:
2021-06-18 19:57:59
阅读次数:
0
一、Flink内核解析,针对版本1.12.0,四大块:任务的提交流程,组件通信,任务的调度,内存管理。 任务的提交流程:以命令行的提交命令开始追踪类,20多个步骤,几十个类,数千行代码量,最后画一个PPT动图 组件通信:actor的模型,akka基本原理和实现,5大关键角色:代理转发,处理细节,PP ...
分类:
其他好文 时间:
2021-06-18 19:53:27
阅读次数:
0
Redis Redis 简介 Redis 一个开源的,内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件。 它支持多种类型的数据结构,如 字符串 string 、散列 hashes 、列表 list 、集合 set 、有序集合 zset 和 范围查询,bitmaps 、hyperloglo ...
分类:
其他好文 时间:
2021-06-18 19:52:49
阅读次数:
0
网络游戏逆向分析-2-搜索基础数据(血量) 人物属性是一个游戏的基础数据,所有的游戏架构都得在基础数据的基础上,所以搜索到基础数据是重中之重。 这里首先来分析人物属性的气血值这个东西。 和单机游戏搜索数据是一样的,同样是采用CE,OD等工具来进行搜索。 搜索血量 首先采用CE,通过数据变化来定位该数 ...
分类:
其他好文 时间:
2021-06-18 19:34:11
阅读次数:
0
1. 前言 Slice又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。 正因为灵活,如果不了解其内部实现机制,有可能遭遇莫名的异常现象。Slice的实现原理很简单,本节试图根据真实的使用场景,在源码中总结实现原理。 2 Slice实现原理 Slice依托数组实现,底层 ...
分类:
其他好文 时间:
2021-06-18 19:20:04
阅读次数:
0
引入计数 在Python中,每个对象都有指向该对象的引用总数 引用计数 查看对象的引用计数:sys.getrefcount() import sys alist=['a','b','c'] >>> sys.getrefcount(alist) 2 >>> b=alist >>> sys.getref ...
分类:
编程语言 时间:
2021-06-18 19:16:12
阅读次数:
0
【浅拷贝】就是对象的数据成员之间的简单赋值。如你设计了一个类而没有提供它的复制构造函数,当用该类的一个对象去给另一个对象赋值时所执行的过程就是浅拷贝,如: class A { public: A(int _data): data(_data){} A() {} private: int data; ...
分类:
编程语言 时间:
2021-06-18 18:58:54
阅读次数:
0
在JS当中,数据类型分为基本数据类型和引用类型,其中基本数据类型(string,number,boolean,undefined,null,symnol......),引用类型为Object(Array、Object、Function......)。 内存分为栈内存和堆内存,其中栈内存用来存储基本数 ...
分类:
Web程序 时间:
2021-06-17 17:07:54
阅读次数:
0