准标准库
- lexical_cast可以简单、直观地实现字符串与数字的互转
- string_algo提供了多种实用的字符串算法,不需要写正则表达式就能够完成大小写转换,查找,比较,替换,分割,合并等日常工作。
- cpu_timer是一个高精度计时器,非常使用性能分析。
数据序列化
- JSON是纯文本,容易阅读,方便编辑,适用范围最广。
- MessagePack是二进制,小巧高效,在开源界接受程度高。
- ProtoBuffer是工业级的数据格式,注重安全和性能,多用在大公司的商业产品里。
网络通讯
- libcurl是一个功能完善,稳定可靠的应用层通信库,常用的是HTTP。
- cpr是对libcurl的C++封装,接口简单,易用。
- libcurl/cpr都只能作为HTTP客户端来使用,编写HTTP/HTTPS服务端应用可以选择cinatra。
- ZMQ是一个高级的网络通讯库,支持多种通信模式,可以把消息队列功能直接嵌入应用程序搭建出高效、灵活、免管理的分布式系统。
多语言混合编程
- C++高效,灵活,但开发周期长,成本高,在混合系统里面可以辅助其他语言,编写各种底层模块,提供扩展,从而扬长避短。
- pybind11是一个优秀的C++/Python绑定库,只需要写很简单的代码,就能够把函数,类等C++要素导入Python。
- Lua是一种小巧,快速的脚本语言,它的兼容项目LuaJIT运行速度更快。
- 使用LuaBridge可以导出C++函数、类,但直接用LuaJIT的ffi库更好。
- 使用LuaBridge也可以执行Lua脚本、调用Lua函数,让Lua在C++里运行。
性能分析
- 最简单的性能分析工具之一是top,使用它可以快速查看进程的cpu、内存使用情况。
- pstack/strade能够显示进程在用户空间和内核空间的函数调用情况。
- perf通过以一定的频率采样来分析进程,统计各个函数的CPU利用率。
- gpertools是侵入式的性能分析工具,能够生成文本或者图形化的分析报告,支持生成直观的火焰图。