Здравствуйте, lpd, Вы писали:
lpd>Да, разница на 20%. Однако здесь только одна операция суммирования чисел, так что это можно считать верхней границей выигрыша, которую дает кэш.
Вот нормальный тест:
— обход vector<int*> более чем в десять раз медленнее чем vector<int>
— обход list<int> более чем в сто раз медленнее чем vector<int>
lpd>В реальных программах обработки больше, да и обращение к данным далеко не всегда последовательное, поэтому кэш не играет такой роли.
В реальных управляемых программах индерекций намного больше чем в
vector<int*>
lpd>Тем более, ошибочно говорить, что кэш миссы — решающий фактор, определящий отставание Java/C# в скорости от C++.
Это один из главных факторов.