【发布时间】:2010-10-21 03:34:42
【问题描述】:
我在 STL 队列推送中遇到了一个我不太理解的行为。
基本上,我有两个结构
structA{
string a;
}
structB{
char b[256];
}
structA st1;
structB st2;
...assign a 256 characters string to both st1 and st2...
queue<structA> q1;
queue<structB> q2;
for(int i=0 ; i< 10000; i++){
q1.push(st1);
}
for(int i=0 ; i< 10000; i++){
q2.push(st2);
}
我意识到,与字符串结构相比,使用 char 结构的队列在推送结构时会使用更长的时间(如 5X)。在检查单个推送后,我意识到 char struct 推送性能到处都有相当多的峰值(范围从 2X 到 10X)。这是什么原因?
谢谢。
【问题讨论】:
-
与您关于性能的其他问题一样,这严重缺乏可重复性。显示您的准确代码、您测量的准确方式以及数字。在这里提出的许多性能难题可以通过指出测试工具中的错误来解决。性能测试很难,随机发布者第一次做对的可能性很小。在你提供这些之前,我投票决定关闭它。