博客
分类
标签
归档
友链
关于
Dark Mode
博客
分类
标签
归档
友链
关于
Dark Mode
Mens et Manus
首页
帮助
示例
社区
档归
源码
深入理解计算机系统脑图
PART1: 计算机系统漫游 组成设备 PART3: 程序的机器级表示 一个可执行程序 编译过程 预处理 编译 汇编 连接 编译细节 gcc -O[g|1|2] <file>优化等级 编译器优化可能会调整代码次序,源代码会严重变形,导致并发时不满足顺序一致性内存模型 数据格式 字节,字,双字,四字 数据类型的汇编代码表示 b, w, l, q 操作数指示符...
2020-10-20
Read More
Lua标准库工具
base_G_G是lua中的一个全局变量,其中保存了lua语言中几乎所有的全局函数和变量 如果全局变量(或函数)存在的话,可以使用_G["VAR"]获取到全局变量。但不能获取到局部变量。可以通过_G["VAR"]=local_var将局部变量转变为全局变量 string string.gmatch(s, pattern) 返回一个迭代器函数,每次调用这...
2020-10-06
Read More
SQL基本语句
建表123456CREATE TABLE `tbl_file`( `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`), UNIQUE KEY `idx_user_file` (`user_name`, `file_sha1`), KEY `idx_status` (`status`)) ENGINE=Inno...
2020-10-05
Read More
Promise, async和wait的简单记录
为什么需要promise有时候需要向函数中传入回调函数(异步操作结束后执行),这么一来可能就会有多重函数嵌套的情况。这样的问题很明显: 耦合度高 解耦要传函数指针 安全考虑还需判断参数类型,可读性差 如果传送匿名参数,可读性更差 Promise写法12345678910111213141516function callRing(success) { return ne...
2020-10-03
Read More
Docker常用命令
Docker常用命令 docker ps [-a],查看正在运行的[所有]容器 docker <start|stop|rm> <ID|NAME>,启动/停止/删除容器 docker rmi <IMAGES>,删除镜像 docker attach id,进入某个容器,使用exit退出容器时,容器也会停止 docker exec -it <ID|NA...
2020-10-01
Read More
Advanced Vim Programming
<SID> The string <SID> can be used in a mapping or menu. When executing the map command, Vim will replace <SID> with the special key code <SNR>, followed by a number that’s ...
2020-09-16
Read More
RPC intro
RPC (Remote Procedure Call)RPC,远程过程调用,是一个计算机通信协议。 相对的就是本地过程调用,即一个程序中调用它的子程序,可以直接通过地址访问。而RPC的远程,就是跨进程访问的意思。 该协议允许运行于一台计算机的程序调用另一个地址空间(通常是开放网络中的一台计算机)的子程序。程序员就像调用本地程序一样,无需额外地为这个交互作用编程。 RPC是一种Client/S...
2020-09-03
Read More
This和箭头函数
ThisThis用于访问当前方法所属的对象,取决于调用的对象如: 12345678910111213141516let obj = { a: 12, fn(){ console.log(this) }}// 或者形如let obj = { a: 12,}obj.fn = function()...
2020-08-20
Read More
什么是dll
什么是DLLDLL(Dynamic Link Library),动态链接库,linux下是.so文件,win下是.dll文件。 之所以需要库,是因为可以进行代码解耦和代码重用,由库文件对外提供服务,如exe调用dll。还有一个作用就是在不希望别人看到源码但需要使用我们的功能时隐藏源码。 静态库 win下是.lib文件,linux下是.a文件 它作为程序的一个模块,在链接期间被合并到程序中 ...
2020-08-20
Read More
Golang内存对齐
Golang内存对齐Cpu要想读取数据,需要通过 地址总线 把地址传输给内存。内存准备好数据输出到 数据总线 ,交给CPU。 每根地址总线能表示一位,8根地址总线就能表示8位二进制数,即256个地址。因为表示不了更大的地址,所以就用不了更大的内存。 每次操作一字节太慢,那就加宽数据总线,要想一次操作一字节就至少需要32位数据总线。8字节就64位。这里每次操作的字节数就是所谓的 机器字长 。...
2020-08-17
Read More
Previous
15 / 24
Next