Форум
Философия программирования
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, Ikemefula, Вы писали: I>Здравствуйте, vdimas, Вы писали: V>>Здравствуйте, Ikemefula, Вы писали: V>>>>>>Гы-гы, оценка O - это оценка сложности СВЕРХУ. А на реальных задачах обязательно интересует так же оценка СНИЗУ. I>>>>>Давай, покажи на примере Enumerable.ElementAt, вперёд. V>>>>Что тебе показать-то? Принцип подвижного маляра относительно неподвижного ведра с краской? )) I>>>"прирост до 50 раз " @ vdimas V>>Этот множитель сложился из двух множимых. См. исходный пост на русском языке: http://www.rsdn.ru/forum/philosophy/4843592.1.aspx. I>То есть, ты разницу между IList и List помножил на разницу между ручной и встроеной серилизацией ? :))) I>Но по любому , ты снова ошибся хотя уже не на порядок I>Проверяем "разница м/у использованием List<> и IList<> в коде от 3-х до ~10-ти раз (от стоимости тела цикла зависит)" I>Итерации по контейнерам длиной N, где в цикле выполняется единственная строчка в виде обращения к элементу для того что бы все итерации были в равных условиях, элементов 10КК, 10 прогонов + вычисление среднего. I>Для сравнения приведены результаты по ArrayList и LinkedList и Array I> цикл контейнер время_относительно_первой_строчки I> foreach object[] 1 I> for object[] 1 I> foreach IList<object> 3.5 I> for IList<object> 4 I> for List<object> 1.7 I> foreach List<object> 2 I> ForEach List<object> 1.7 I> foreach ArrayList 6 I> for ArrayList 3 I> foreach LinkedList<object> 4 I>Итого, максимальная разница между List и IList в 2.5 раза. С valuetype вместо object разница еще меньше, всего 1.5 раза. I>Вероятно "от 3-х до ~10-ти" ты получил вообще на пустых итерациях ;-) V>>А теперь тебе надо бъяснить пассаж насчет Enumerable.ElementAt. :))) I>Объясняю - использование List может быть очень дорогим удовольствием, а хочется, что бы некоторые функции вроде Linq2Objects работали крайне быстро, выход - IList<> I>>>Успокойся, не волнуйся, твои сценарии самые-самые, и да, это не беда, что только у тебя они используются. I>>>Для моих сценариев IList<> в самый раз, просто потому что List<> это ОЧЕНЬ дорогой контейнер. Настолько дорогой, что использовать его нельзя во многих сценариях. V>>Дык, никто не мешает использовать любые конкретные типы, в т.ч. обычный массив. И таки, если речь об итерировании, то итерирование по List<> нифига не дорогое удовольствие, в отличие от IList<>. I>Ты похоже не понимаешь - если List это очень дорого, то и массив тоже будет так же дорого. I>Реальная разница в 2.5 раза на почти пустой итерации. Если цикл чуть сложнее суммы элементов, эта разница становится ничтожной.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …