Здравствуйте, CoderMonkey, Вы писали:
I>>Это сделано потому, смотри внимательно, что скорость ленивого кода пополам с энергичным никто в своём уме не делает.
CM>Это где ты там ленивый код увидел?
От тебя одно откровение за другим. Вот это и есть ленивый код
Enumerable.Range(0, 1000 * 1000).Select(x => new TestClass())
С помощью ToArray ты леникую последовательность перегоняешь в массив. Скорость этого участка кода соответсвует скорости узкого места. Никакого чуда здесь нет.
CM>Тогда уж мы будем и твой код сравнивать в исходном варианте. Вылетает с ошибкой, считаем время до корректного результата за бесконечность
CM>А во вторых, твой код выдает все время очень разные результаты, разброс +-50%. Перепиши лучше, чтобы считалось среднее время хотя бы за 10 прогонов.
Во-первых, ни к чему. мой код выдает серию результатов, вот их и показывай, скажем, штук 10. Для того и сделано, что бы видеть эту особенность.
Во-вторых, смотри сам, что ты выдал — твой код не компилируется
I>>3 время инициализации,
I>>4 время сортировки,
CM>Пара небольших фиксов, и получаем:
Сравни "C# в исходном варианте" и "Пара небольших фиксов"
Сим ты признался, что исходный вариант C# отстой
CM>Init: 0.777316665
CM>Sort: 0.57440166
Твои "пара фиксов" это изменение типа данных. Фактически, это глобальное изменение. Ты сравниваешь разные вещи
I>>Как выложишь, можешь сравнить с тем, что я привел. п.5. чисто что бы проверить твою "гипотезу" что де железо нынче ничего не решает.
CM>Давай. Жду.
Пофикси сначала свой код, у меня он не компилируется