这个问题说起来可大可小,可长可短,基本都是自己切身的经验总结。
高爷爷说过"过早的优化是万恶之源",做开发不可能一开始就想着优化,应该从全局考量,从各个角度去思考,权衡利弊,做出一个
符合大局利益的设计,下来再考虑如何优化。
优化是在现有已成形的设计架构下,做的性能提升。假如你一开始就设计一个低性能的架构,满足不了需求,这种只能推到重来,还优化干嘛。
经验总结如下:
(1) 以事件驱动方式替代轮询
(2) 减少系统调用
(3) 使用零拷贝, epoll等高性能系统API
(4) 尽量以异步代替同步,将一段任务分成多个线程或者进程处理,发挥多核流水线操作优势
(5) 合理设置和使用各种缓存
(6) 池机制和预分配
(7) 延迟分配,效仿fork 的Copy On Write机制
(8) 尽量无锁设计, Double Check,自旋锁, 读写锁
(9) 减少内存无效操作(mem系列), 无锁环形缓冲区, 使用writev/readv
(10) 设置tcp发送/接收缓冲区大小
(11) C++中尽量减少临时对象产生
切勿滥用String + 操作
传递参数尽量避开传值方式
考虑vtable代价
使用错误码代替异常
字符串常量长度使用sizeof,而不要用strlen
优化之道:全局考量与高效设计
本文深入探讨了软件开发中的优化策略,强调从全局视角出发,避免过早优化,通过事件驱动、减少系统调用等手段实现性能提升。重点介绍了10种优化方法,包括使用高性能API、异步处理、合理缓存与资源管理,以及减少无效内存操作等,旨在为开发者提供实用的优化指南。
1万+

被折叠的 条评论
为什么被折叠?



