1、针对IO瓶颈的性能优化
每次IO操作大概在10ms量级,100次就需要1秒左右,因此尽量避免不必要的IO操作。具体做法如下:
(1)预先顺序读文件避免随机访问。
(2)合并多个小文件为单个大文件。
(3)优化动态库文件的加载。
(4)交错IO时间和CPU时间。
2、针对计算密集的性能优化
计算密集的性能问题主要有内存分配性能、字符串操作、共享变量的互斥锁保护等,具体优化方法如下:
(1)去除冗余代码。
(2)字符串操作优化。
(3)减少内存分配、释放操作,例如使用内存池。
(4)减少不必要的互斥锁操作。
(5)根据性能需求选择数据结构。
(6)延迟工作,按需执行。
(7)减少跨进程的调用。
(8)使用高性能的函数库。
3、C++语言特性相关的性能优化
C++语言特性相关的性能优化包括内联函数、引用、编译优化选项等.
4、用户体验的性能优化
有些设计不能真正提升性能,但让用户体验到了性能提升。如:
(1)流式播放设计,用户不需要等到视频文件下载完成再播放,可以边下载边播放。
(2)线程化设计,对于需要较长时间完成的操作,可以设计为非阻塞式的,用户可以在等待时间完成其它操作任务。
5、设计层面的性能优化
设计层面的性能优化需要根据软件整体架构具体问题具体分析。