阿萍的博客

阿萍的博客

基础篇:经常说的 CPU 上下文切换是什么意思

1 CPU 上下文切换多进程竞争 CPU 时没有真正运行,但仍然会导致系统负载升高,原因是过多的 CPU 上下文切换会把 CPU 时间消耗在寄存器、内核栈及虚拟内存等数据等保存和恢复上,从而缩短...

基础篇:到底该怎么理解“平均负载”

1 平均负载当系统变慢时,通常会执行 uptime 或 top$ uptime 15:44:12 up 35 days, 18:53, 11 users, load average: 0.0...

《C++ 编程思想》摘抄

第一卷第二章 对象的创建与使用解释器将源代码转化成一些动作(它可由多组机器指令组成)并立即执行这些动作。例如,BASIC就是一个流行的解释性语言。传统的BASIC解释器一次翻译和执行一行,然后将...

观察者模式 & 订阅者模式

1 观察者模式1.1 简介定义观察者模式定义了一系列对象之间的一对多关系。当一个对象改变状态,其它依赖者都会收到通知。优点下一月让主题和观察者之间松耦合。主题只知道观察者实现了 Observer...

grpc 入门

1 介绍详见:https://grpc.io/docs/2 示例2.1 项目结构grpc ├── helloworld │ ├── BUILD │ ├── greeter_client....

bazel test 特定标签

1 为 test 添加标签cc_test( name = "dispatcher_test", size = "small", s...

利用 bazel 将 c++ 打包为独立的 .so

如果希望通过 .so 和头文件的方式使用 b,但是 b 又依赖 a,如何让 b 的 .so 中包含 a 呢。那就是将 b 编译为 .so 时,BUILD 文件如下书写:cc_binary( ...

memory leaks 问题排查

1 Address-Sanitizer 扫描$ bazel test --config asan common/integration:onboard_util_test扫描结果:==12529...

cannot access memory 错误排查

1 cannot access memory1.1 问题复现运行如下命令后:$ bazel build common/pressurer:pressurer_main $ ./bazel-bin...

Address Sanitizer 介绍与使用

1 ASAN 简介AddressSanitizer(内存除毒器简称ASAN)早先是LLVM中的特性,后被加入GCC 4.8,在GCC 4.9后加入对ARM平台的支持。因此GCC 4.8以上版本使...