【发布时间】:2016-06-03 20:57:41
【问题描述】:
作为我的测试代码的一部分,我需要构建复杂的结构,其中使用 2 个 std::map 实例;它们都有大约 100 万个元素。在优化的构建中没关系,但是,在调试未优化的构建中几乎需要一分钟。我使用相同的数据来构建该地图,基本上,如果我可以节省大量内存并在 20 毫秒内恢复它,那么我将有效地在我的应用程序中获得相同的地图,而无需每次等待一分钟。我能做些什么来加快速度?我可以尝试使用自定义分配器并保存/恢复其分配的存储,或者有没有办法从已经排序的数据中构造 std::map 以便它在时间上是线性的?
【问题讨论】:
-
我希望排序后的数据需要对地图中的树进行更多的重新平衡,因此速度会变慢。您是否考虑过将
vector与lower_bound一起使用? -
根据您的编译器,您可以启用某种程度的优化,同时保留调试信息。什么编译器?
-
更多关于上下文的信息会很有帮助。为什么你首先需要摆脱地图?你也许可以颠覆它。
-
@nwp 我正在考虑使用
lower_bound和排序向量推出我自己的“地图”。在我的情况下可能是可接受的方法 -
@vu1p3n0x 我使用 Visual Studio 2015(微软编译器)。