我正在尝试优化C++例程.这个例程的主要瓶颈是对象向量的push_back().我尝试使用deque而不是尝试了一个列表.但奇怪的是(与理论相反)deque和list实现比vector对应运行得慢得多.
事实上,甚至clear()对于deque和list实现来说比向量对应运行慢得多.在这种情况下,Vector实现似乎是最快的,而列表实现是最慢的.
有什么指针吗?
注意:vector reserve()可以加快实现速度但不能完成,因为它的大小未知.
谢谢.
我希望优化C++模拟应用程序的读/写大数据.被称为"地图"的数据基本上由整数,双精度,浮点数和单个枚举组成.大部分地图数据的大小是固定的,但其中一小部分的大小可以变化(从几个到几KB).几个这样的映射(通常是数百万)在应用程序开始时计算一次,然后存储在单个二进制文件中,以便在每个模拟时间步骤进行解析.
由于有几百万个映射,因此fseek和fread是主要的瓶颈,解析这个二进制文件的速度非常慢.我正在寻找另一种方法来做同样的事情.
有什么指针吗?