原始笔记是一段英文要点,这里只做分类与中文简注,方便扫读。
当前保留内容
衡量一个 API / 库的性能不能只看运行时耗时,下面五个维度需要一起看:
- Compile-time speed(编译期开销) 你的 API 对客户端程序编译时间的影响。会直接影响用户的开发效率。
- Run-time speed(运行期耗时) 调用 API 方法的时间开销。如果方法调用非常频繁,或者需要在不同输入规模下都保持良好扩展性,这一项尤其重要。
- Run-time memory overhead(运行期内存开销) 调用 API 方法所带来的额外内存开销。如果对象会被大量创建并长期保留在内存中,这一项不仅影响内存占用,还可能影响 CPU cache 性能。
- Library size(库体积) 实现的目标代码尺寸,会被链接进客户端应用。它影响客户端应用整体的磁盘占用和内存占用。
- Startup time(启动时间) 动态库加载并完成初始化所需的时间。受多种因素影响:模板解析、未解析符号绑定、静态初始化器调用、库搜索路径等。
后续可补的方向
这篇后续如果继续整理,建议至少补下面几类内容:
- 每个维度对应的常用度量工具(如编译耗时统计、benchmark 框架、
size/bloaty、启动 trace 等) - “牺牲 A 换 B” 的常见取舍案例(如模板内联换运行时性能、付出编译时间换二进制体积)
- 实际项目中按场景排序的优先级建议(库 vs 应用 vs 框架)
当前这篇先当作一个”性能五要素”的速记占位条目。
FEATURED TAGS
Git
Cheat Sheet
Markdown
Tools
C++
Linker
Thread
Linux
TCP
Network
GDB
Debug
leetcode
链表
WSL
Ubuntu
Windows
Linux Kernel
GCC
Android
adb
Troubleshooting
Profiling
Sanitizer
glibc
MySQL
Database
Python
curl
Build
ELF
clang-format
CMake
Graphviz
Performance
vcpkg
Protobuf
排查
速查
内存
STL
调试
性能分析
性能
读书笔记
方法论
架构
网络
Timer
mbedTLS
TLS
安全
负载均衡
脚本
工具
LRU
二叉树
BST
中序遍历
回溯
二分查找
优先队列
排序
旋转数组
jenkins
部署