Информация об изменениях

Сообщение Re[34]: benchmark от 10.01.2017 11:27

Изменено 10.01.2017 11:30 Evgeny.Panasyuk

Re[34]: benchmark
Здравствуйте, lpd, Вы писали:

lpd>Да, разница на 20%. Однако здесь только одна операция суммирования чисел, так что это можно считать верхней границей выигрыша, которую дает кэш.


Вот нормальный тест:
— обход vector<int*> более чем на порядк медленнее чем vector<int>
— обход list<int> более чем на два порядка медленнее чем vector<int>

lpd>В реальных программах обработки больше, да и обращение к данным далеко не всегда последовательное, поэтому кэш не играет такой роли.


В реальных управляемых программах индерекций намного больше чем в vector<int*>

lpd>Тем более, ошибочно говорить, что кэш миссы — решающий фактор, определящий отставание Java/C# в скорости от C++.


Это один из главных факторов.
Re[34]: benchmark
Здравствуйте, lpd, Вы писали:

lpd>Да, разница на 20%. Однако здесь только одна операция суммирования чисел, так что это можно считать верхней границей выигрыша, которую дает кэш.


Вот нормальный тест:
— обход vector<int*> более чем в десять раз медленнее чем vector<int>
— обход list<int> более чем в сто раз медленнее чем vector<int>

lpd>В реальных программах обработки больше, да и обращение к данным далеко не всегда последовательное, поэтому кэш не играет такой роли.


В реальных управляемых программах индерекций намного больше чем в vector<int*>

lpd>Тем более, ошибочно говорить, что кэш миссы — решающий фактор, определящий отставание Java/C# в скорости от C++.


Это один из главных факторов.