2020-06-19

C++ bug free 原则

Views: 6470 | Add Comments

## 性能优化

* 过早优化是万恶之源
* 严禁在编程语言的语法层面进行性能优化, 只在逻辑层面和功能结构上进行优化

## 内存拷贝

* 不要害怕内存拷贝
* 如果想避免内存拷贝, 只能显式地用指针(引用)传递来共享内存, 严禁使用 std::move()
* 如果指针传递的路径太长, 或者指针的使用者职责不单一, 那就用内存拷贝

## 接口设计

* 不要为了性能考虑而设计 batch 接口, 所有函数都以一次处理一个对象为原则

## 并发和锁

* 串行化使得系统的结构更简洁和清晰
* 减少并发的长度(粒度), 一旦并发, 要尽快结束并发, 合并结果, 然后再串行化地做后续处理
* 如果串行化是性能瓶颈, 那就用 worker 线程模型, worker 的逻辑必须非常单一且简短
* 如果锁能让代码结构更简洁和清晰, 那么放弃部分性能也值得

Related posts:

  1. 企业级SSD硬盘fsync速度
  2. C++ Latch 实现
  3. 接口与实现分离
  4. 生产者消费者编程模式
  5. Linux下整合Apache和Tomcat
Posted by ideawu at 2020-06-19 12:48:51

Leave a Comment