今天我下载并创建了一个 Electronic Arts STL 实施的示例项目,EA 的矢量对我来说看起来比标准慢得多。我刚刚创建了 2 个向量并上传了 100 万个项目:
void performance_test(void)
{
clock_t start;
clock_t end;
// EA
eastl::string strEA = "hello";
eastl::vector<eastl::string> vec_EA;
start = clock();
for (size_t i = 0; i < 1000000; i++)
{
vec_EA.push_back(strEA);
}
end = clock();
printf("EA %f\n", (double(end - start) / 1000));
// Standard
std::string strStandard = "hello";
std::vector<std::string> vec_Standard;
start = clock();
for (size_t i = 0; i < 1000000; i++)
{
vec_Standard.push_back(strStandard);
}
end = clock();
printf("Standard %f\n", (double(end - start) / 1000));
}
结果是:
- EA 0.759000
- 标准 0.064000
那么,有什么我做错了还是我错过了什么?该示例已使用 v100 平台工具集进行编译。