skynet 笔记:sharedata 与 sharetable 对比
1. 简单对比 sharetable 在 2019 年就做出来了,见云风的这篇文章 《不同虚拟机间共享不变的 Table》 ,现在基本上都是使用这个的,而更早的,基本上都是使用 sharedata 的,中间还有一个叫 datasheet,但用的人可能不多。 对比 sharedata 与 sharetable 是有意义的,从中可以看到 lightuserdata + metatable 这...
1. 简单对比 sharetable 在 2019 年就做出来了,见云风的这篇文章 《不同虚拟机间共享不变的 Table》 ,现在基本上都是使用这个的,而更早的,基本上都是使用 sharedata 的,中间还有一个叫 datasheet,但用的人可能不多。 对比 sharedata 与 sharetable 是有意义的,从中可以看到 lightuserdata + metatable 这...
持续更新 记录 golang 相关的常识,以及使用过程中遇到的问题。 1. 资料 1.1 官方资料 官网:https://go.dev/ 官方文档合集:https://go.dev/doc/ language specification: https://go.dev/ref/spec library 文档: https://pkg.go.dev/std a tour...
今天在看 python2 与 python3 的区别的时候,发现:print 在 python2 中是语句,而在 python3 中是函数,那底层上的区别是什么?通过查看生成出来的字节码找到了答案:python2 直接用指令来支持的,而 python3 调用了函数。 查看字节码除了下面展示的用 python 自带的 dis 模块,也可以用这个网站:compiler explorer,当前它...
记录 linux 下动态追踪的相关知识。 动态追踪 《李兆龙 - 浅谈动态追踪:从SystemTap到bpfTrace》 《章亦春 - 动态追踪技术漫谈》 systemtap 《codedump - 通过实例快速入门Systemtap》 awesome-systemtap-cn ...
记录 linux 进程间通信的相关知识。 1. linux 进程间通信(IPC)的方式 总的包括:管道、消息队列、共享内存、信号量、socket、信号。 1、管道、消息队列、共享内存、信号量,这几种可以在《UNIX 环境高级编程(第2版)》[1] 的第 15 章都可以找到详细论述。 2、socket, 在第 16、17 章。 3、信号,《UNIX 环境高级编程(第2版)》 并没...
持续更新 记录操作系统相关的常识。 1. 常识 1.1 cache 与 buffer 以下参考自:《Cache 和 Buffer 都是缓存,主要区别是什么?》 [1]。 cache 用于处理系统两端的速度不匹配,比如 cpu 和 memory 的速度差距越来越大,所以就利用局部性原理,通过 memory hierarchy (分级存储)的策略减少这种差距造成的影响。 bu...
持续更新 记录 redis 相关的常识,以及使用过程中遇到的问题。 1. 常识 1.0 资料 Redis 官网: https://redis.io/ Redis Command 用法查询: Redis Commands Redis Online Playground: https://onecompiler.com/redis/ 1.1 bigkey 的删除 这篇...
持续更新 记录 mongodb 相关的常识,以及使用过程中遇到的问题。 1. 常识 资料 MongoDB manual: https://www.mongodb.com/zh-cn/docs/manual/ 1.1 mongodb 支持外键吗? mongodb 没有类似于关系数据库的外键机制。 只能是通过引用或嵌套文档,建立起文档间的关系,然后在应用层去做完整性的判断。...
c 语言要模拟面向对象,即要模拟这几个特性:封装、继承、多态。 1. 模拟 oo 的三大特性 1.1 封装 封装就是把属性和对属性的操作封装在一个独立的实体中,这种实体在 c++ 称为类。 1、c 语言模拟封装,可以用 struct 来模拟类,struct 中可以使用函数指针变量来保存类的成员函数。 2、c 函数要访问类里面的成员,需要有类对象的指针,那么这些成员函数的...
持续更新 记录多线程相关的常识,以及使用过程中遇到的问题。 1. 常识 1.1 惊群效应 深入理解linux惊群效应(超详细) 1.2 什么时候应该使用多线程编程? CppCon 2017: Ansel Sermersheim “Multithreading is the answer. What is the question? (part ...
记录同步相关的知识,包括同步的概念,同步要解决的问题,同步原语。 1. 资料 pthread 的官方文档:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html pthread linux api 文档:https://man7.org/linux/man-p...
持续更新 记录 db 相关的常识,以及使用过程中遇到的问题。 1. 常识 1.1 倒排索引 正排索引是类似这样的: id1 -> 文档1 id2 -> 文档2 id3 -> 文档3 ... idn -> 文档n 而倒排索引(Inverted Index)是类似这样的: word1 -> id1,id2,..idx word2 -> ...
持续更新 记录算法相关的常识,以及使用过程中遇到的问题。 1. 数据结构与算法 1.1 红黑树 参考:《wikipedia 红黑树》 [1]。 Red-black tree,是一种自平衡二叉查找树,典型用途是实现关联数组,1972 年由鲁道夫.贝尔发明,被称为 “对称二叉 B 树”。有着良好的最坏情况运行时间,可以在 O(logn) 时间内完成查找、插入、删除。 关联数组...
记录论文搜索、下载、阅读相关的常识。 1. 常识 1.1 doi doi 即 digital object identifier,相当于文献的身份证号,国际上从 1998 年才开始普及,旧的文章一般没有,不排除有些文章补录了 doi。 1、格式 doi 由两部分组成,前缀和后缀,中间用 / 分割,所有 DOI 都以 “10.” 开头,可由数字+字母或纯数字构成,结尾没有点(...
持续更新 记录一些基础的理论知识。 1. 常识 1.1 二元关系 《二元关系》 2. 参考
持续更新 记录 c 相关的常识,以及使用过程中遇到的问题。 1. 常识 1.1 struct 与 typedef 1、不使用 typedef 后续定义变量都要加上 struct,比如这样: #include "stdio.h" #include "stdlib.h" struct S { int x; }; int main() { struct S ...
持续更新 记录网络相关的常识,以及使用过程中遇到的问题。 1. 常识 socket read/write 的返回值处理 参考:《socket读写返回值的处理》 1、返回值大于 0 表示从缓冲区读取或写入的实际字节数目。 2、返回值等于 0 read 返回 0,表示对端已经关闭 socket,本端也需要相应关闭。 有时候 select 有结果,但是 read 却返...
记录 c++ 关于模板相关的要点。 1. 模板 1.1 资料 《C++ Templates (第2版·英文版)》: https://book.douban.com/subject/30226708/ 《c++ Templates 第2版的中文翻译》:https://github.com/Walton1128/CPP-Templates-2nd– 1.2 模板特化 (te...
记录 c++ 关于面向对象相关的要点。 1. OOP 基础 1.1 虚函数与纯虚函数 2. 虚表 2.1 菱形继承的情况下,子类的虚表是怎么样的? 参考
持续更新 记录 c++ 相关的常识,以及使用过程中遇到的问题。 1. 常识 1.1 为什么需要引入 nullptr? nullptr 是 c++11 引入的,用于代替 NULL,它也是有类型的,是 std::nullptr_t。 在此之前,c++ 用 NULL 表示空值,但它实际上就是 0 。那么有些场合分不清楚是想传 空值 还是 数字0。 比如这样: void f(i...