EASTL与STL,如何在std :: vector <uint64_t> :: operator []中出现这样的性能差异

Vik*_*ehr 13 c++ optimization stl eastl

根据http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html,EASTL的 vector<uint64>::operator[]速度比"常用的STL商业版本"快2%到70%.

除非STL的商业版本使用范围检查,这会使比较不公平,对于这样一个简单的操作,它怎么可能是这样的速度差异?

更新:

似乎答案是,EA工程师只是通过与使用范围检查的版本进行比较而作弊...

ild*_*arn 8

该文件指出,他们使用VC++ 2005为Windows测试与检查的迭代默认启用的(是的,即使是发布版本;这同样适用于VC++ 2008).我怀疑operator[]如果他们添加-D_SECURE_SCL=0到他们的构建命令行,性能将没有任何不同.