交叉编译
简单看下cross compile要做哪些东西,从一个gn的例子开始。 config("compiler_cpu_abi") { cflags = [] cflags_c = [] cflags_cc = [] ldflags = [] defines = [] if (is_linux) { # CPU architecture. We may or m...
简单看下cross compile要做哪些东西,从一个gn的例子开始。 config("compiler_cpu_abi") { cflags = [] cflags_c = [] cflags_cc = [] ldflags = [] defines = [] if (is_linux) { # CPU architecture. We may or m...
在leveldb里发现了一段代码 // Wraps an instance whose destructor is never called. // // This is intended for use with function-level static variables. template <typename InstanceType> class NoDestruct...
看了下业界的eventloop实现,大多数的思路都是one thread per loop,然后在fd增加之类的,大多数都是在回调事件里,会跟wait同时进行 比较骚的是,我看大家打断epoll_wait都用的是event fd read来触发 我在想这个是不是在某些场景下其实会影响并发的性能。。。 我浅看了一下muduo的实现是这样的,但workflow的实现看起来又是另外一套。 ...
1 muduo 同步日志的话,在一些文件写入很慢的设备上,可能导致出现一些性能问题,你也可能常见到这种同步日志突然出现日志丢了10s多的情况。所以现代的日志库一般都支持async logging的方式 可能业界很多log都用的spdlog,但是muduo的实现确实非常的简单,而且也是支持异步的,基本可以看作是一个工程化能用的最简单logging。这玩意只支持写文件,不像spd那样有很多的...
1 route table 默认下,输入route print可以查看当前系统的路由表,如下: =========================================================================== 接口列表 9...[] ......Realtek PCIe GbE Family Controller 20...[] ......I...
一些gcc/clang内置的__builtin函数, 大部分clang也有 1. __builtin 1. __builtin_expect 允许将最有可能执行的分支告诉编译器 #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) if e...
libvirt简介 std::make_move_iterator 针对一个容器想move特定的部分,不拷贝,这个就比较好用。或者你想从一个vector转到一个unordered_set, 这个也可以。比较骚的是里面还是会留一个空对象,记得清空 Linux 内核的 ftrace 机制 kernel new bies ...
REF cgroup-v2 translation linux资源管理cgroup简介 4 Linux technologies fundamental to containers cgroup-v2 cgroup-v1
REF struct page结构体 Minimizing the use of tail pages An introduction to compound pages Cramming more into struct page Memory_management-struct_page
Page cache Linux的Page Cache(页面缓存)是内核中的一种机制,用于缓存从磁盘读取的文件内容,以及缓存即将写入磁盘的数据。 为什么使用 1 快 cpu其实没法直接操作磁盘数据,其实只能经过一次内存之后再操作,这中间是有copy的 这种缓存机制可以显著提高文件访问的速度,因为访问内存中的数据比访问磁盘上的数据要快得多。 type ...