一些遗留代码一起工作,我遇到了因内存问题主要是(我相信)的广泛使用STL的地图(特别是“地图 - - 地图”。)升压flat_map容器
我在看提升flat_map作为可能的解决方案。有没有人有任何关于flat_maps的第一手经验,尤其是关于速度和/或内存使用方面的改进?我当然意识到,这可能非常依赖于存储的数据类型和存储方式,但仍然对民间实际体验感到好奇。
任何人都可以指出我一些可靠的例子吗?
作为一个例子:有几种情况中的映射对的一地图的这个代码;即值为另一个地图的地图。
通过用一对载体的更换“内”地图,我减少内存占用10:1(3G至300M)。当然,这可能会减慢搜索速度,但对于这种特殊情况,它似乎并不重要。它涉及重构和仔细测试的一天。
Boost的flat_map听起来像它可能是正是我需要的,但我似乎无法找出太多关于它的其他比对升压网站类的描述。寻找一些第一手的反馈。
你说的“内存问题”呢?你可以再详细一点吗? – beerboy 2013-03-07 02:31:09
内存过大。还有其他的吗?说真的,我已经使用flat_map运行了一些测试,它似乎适用于我的目的。它不像使用一对载体那样有效,但是alomost也很好,当然也更容易重构。 – user1074069 2013-03-08 15:17:23
你可以检查一些东西:你是否收集垃圾(意思是,你是从地图上删除索引,而不是将其设置为0)?并且可以通过将类型表示为更小的类型来节省空间(例如,如果有很多重复的字符串,则使用枚举而不是字符串)? – EHuhtala 2013-03-18 19:00:03