抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

深入理解计算机系统脑图

PART1: 计算机系统漫游 组成设备 PART3: 程序的机器级表示 一个可执行程序 编译过程 预处理 编译 汇编 连接 编译细节 gcc -O[g|1|2] <file>优化等级 编译器优化可能会调整代码次序,源代码会严重变形,导致并发时不满足顺序一致性内存模型 数据格式 字节,字,双字,四字 数据类型的汇编代码表示 b, w, l, q 操作数指示符...

Lua标准库工具

base_G_G是lua中的一个全局变量,其中保存了lua语言中几乎所有的全局函数和变量 如果全局变量(或函数)存在的话,可以使用_G["VAR"]获取到全局变量。但不能获取到局部变量。可以通过_G["VAR"]=local_var将局部变量转变为全局变量 string string.gmatch(s, pattern) 返回一个迭代器函数,每次调用这...

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...

Promise, async和wait的简单记录

为什么需要promise有时候需要向函数中传入回调函数(异步操作结束后执行),这么一来可能就会有多重函数嵌套的情况。这样的问题很明显: 耦合度高 解耦要传函数指针 安全考虑还需判断参数类型,可读性差 如果传送匿名参数,可读性更差 Promise写法12345678910111213141516function callRing(success) { return ne...

Docker常用命令

Docker常用命令 docker ps [-a],查看正在运行的[所有]容器 docker <start|stop|rm> <ID|NAME>,启动/停止/删除容器 docker rmi <IMAGES>,删除镜像 docker attach id,进入某个容器,使用exit退出容器时,容器也会停止 docker exec -it <ID|NA...

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 ...

RPC intro

RPC (Remote Procedure Call)RPC,远程过程调用,是一个计算机通信协议。 相对的就是本地过程调用,即一个程序中调用它的子程序,可以直接通过地址访问。而RPC的远程,就是跨进程访问的意思。 该协议允许运行于一台计算机的程序调用另一个地址空间(通常是开放网络中的一台计算机)的子程序。程序员就像调用本地程序一样,无需额外地为这个交互作用编程。 RPC是一种Client/S...

This和箭头函数

ThisThis用于访问当前方法所属的对象,取决于调用的对象如: 12345678910111213141516let obj = { a: 12, fn(){ console.log(this) }}// 或者形如let obj = { a: 12,}obj.fn = function()&#...

什么是dll

什么是DLLDLL(Dynamic Link Library),动态链接库,linux下是.so文件,win下是.dll文件。 之所以需要库,是因为可以进行代码解耦和代码重用,由库文件对外提供服务,如exe调用dll。还有一个作用就是在不希望别人看到源码但需要使用我们的功能时隐藏源码。 静态库 win下是.lib文件,linux下是.a文件 它作为程序的一个模块,在链接期间被合并到程序中 ...

Golang内存对齐

Golang内存对齐Cpu要想读取数据,需要通过 地址总线 把地址传输给内存。内存准备好数据输出到 数据总线 ,交给CPU。 每根地址总线能表示一位,8根地址总线就能表示8位二进制数,即256个地址。因为表示不了更大的地址,所以就用不了更大的内存。 每次操作一字节太慢,那就加宽数据总线,要想一次操作一字节就至少需要32位数据总线。8字节就64位。这里每次操作的字节数就是所谓的 机器字长 。...