我正在实现一个存储和操作大量重复短字符串的系统。例如股票价格系列。我会有很多微软股票价格的重复条目:
<time1>,MSFT,60.01
<time2>,MSFT,60.02
<time3>,MSFT,60.00
我正在考虑使用Boost::Flyweight
这些小的重复代码名称(如本例中的 MSFT)来优化内存分配、字符串查找/比较/复制成本。
但问题是这些字符串一开始就很小——通常只有几个字节。而现代计算机中的长类型已经是 8 个字节。Boost::Flyweight
在这种情况下值得使用吗?
我的理解Boost::Flyweight
是它内部化的字符串是整数以提高性能。但我认为查找/比较/复制 8 字节字符串与操作 8 字节长数据类型并没有太大区别。那么,是否值得搬家Boost::Flyweight
?
如果我必须选择一个,我的主要目标更多是在速度优化方面而不是内存优化方面。