我遇到了STL隊列推送中的行爲,我不太明白。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結構隊列會在比較字符串結構推動結構使用更長的時間(如5次)。在檢查個別推送時,我意識到char結構推送性能在這裏和那裏有相當多的尖峯(範圍從2X到10X)。這是什麼原因?
謝謝。
與您的其他性能問題一樣,這嚴重缺乏可重複性。顯示您的_exact_代碼,您測量的_exact_方式以及數字。這裏提到的許多性能謎題都可以通過指出測試工具中的錯誤來解決。性能測試非常困難,而且隨機海報首次出現的可能性非常小。在你提供這些信息之前,我正在投票結束這件事。 – sbi 2010-10-21 07:27:07