1、STL模板效率问题
一般使用STL模板会使得程序运行的效率减慢,因为STL模板的一些标准的数据结构都需要分配比较多的内存空间以及上下文切换的开销,有时像vector等容器在程序运行过程中,如果发生容量不足时,它需要重复分配更大的内存,并把原来的内容拷贝过去,这一点是非常耗时的。
另外一点,如果使用STL模板尽量使得某个数据结构全局共享,否则的话,每次定义一个局部的数据结构,都要重新分配内存,非常耗时。
本质上是这样的概念,尽量在程序运行之前先申请好内存空间,不要在程序运行过程中不断申请,这样系统需要不断地进行上下文切换的开销。另外对于像vector这样动态分配存储空间的容器,如果问题允许的额话,就直接预定义它的空间大小。
2、输入输出效率问题
当存在大量输入输出时,不要使用流输入输出,否则程序执行的速度很受牵制。
可以使用使用C语言中的输入输出操作。(我在一个有较大输入和输出的程序中对比了一下两种输入输出方式,发现使用C语言的输出输入函数使得程序执行速度提高了将近800MS)
有空整理一下: