Re[12]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 13:59
Оценка: -1 :)
Здравствуйте, alexzzzz, Вы писали:

A>Таким образом, берём решение задачи, оптимизированное по скорости средствами языка А, берём решение задачи, оптимизированное по скорости средствами языка Б, и сравниваем их между собой. Любые другие сравнения лишены практического смысла.


Чорт, по таким правилам C# слил втрое, потому что в самой сортировке только массив перетасовывается.
Re[29]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 14:08
Оценка: -1
Здравствуйте, Ночной Смотрящий, Вы писали:

_>> Т.е. ты сейчас идеально подтвердил моё предположение о том, что ты стал писать на форуме вообще не читая предыдущие обсуждения и даже не понимая о чём реально речь.


НС>Не, это ты в очередной раз слил.


Я как ни зайду на форум, у тебя вечно ктото сливает Ты себя лучше после такого чувствуешь или что ?
Re[12]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 18.09.17 14:12
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>Таким образом, берём решение задачи, оптимизированное по скорости средствами языка А, берём решение задачи, оптимизированное по скорости средствами языка Б, и сравниваем их между собой. Любые другие сравнения лишены практического смысла.


Оу, в темку подъехали здравомыслящие люди! Не может быть. )))
Re[12]: Реальная производительность WebAssembly?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.17 14:20
Оценка: +1
Здравствуйте, alexzzzz, Вы писали:

A>Таким образом, берём решение задачи, оптимизированное по скорости средствами языка А, берём решение задачи, оптимизированное по скорости средствами языка Б, и сравниваем их между собой. Любые другие сравнения лишены практического смысла.

И что мы в итоге сравниваем? Пузырьковую сортировку с быстрой?

На самом деле нужны тесты сравнивающие скорость GC, скорость JIT компиляции и скорость выполнения.
Например
http://rsdn.org/forum/dotnet/6808392.1
Автор: Serginio1
Дата: 13.06.17

http://rsdn.org/forum/dotnet/6738556.1
Автор: Serginio1
Дата: 28.03.17
и солнце б утром не вставало, когда бы не было меня
Re[29]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 18.09.17 14:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

_>>Вообще то я как раз именно так и сделал: http://rsdn.org/forum/flame.comp/6904643.1
Автор: alex_public
Дата: 15.09.17
.

НС>Заменив на toString, работающую по самому примитивному алгоритму? Ну так я тебе уже сказал, что это намного хуже, чем исходный вариант.

Что значит хуже? Как раз лучше, т.к. быстрее при тех же самых входных/выходных данных. Именно это и надо для теста. Или ты хочешь внести новое слово в тестирование производительности, в котором будут рассматривать не самые быстрые, а самые сложные алгоритмы?
Re[26]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 14:42
Оценка:
Здравствуйте, alex_public, Вы писали:

CM>На самом деле нет. Единственное, что тормозило в предыдущем примере — это ToString.


То, что твой вывод про массивы — ложный.

_>Так это оказывается было ещё в пользу .net сравнение. Потому как взяв твой пример теста (с объектами и динамическим выделением памяти), я бы получил проигрыш .net'а в разы...


Чувак, у тебя температуры нет?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[13]: Реальная производительность WebAssembly?
От: alexzzzz  
Дата: 18.09.17 14:43
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, alexzzzz, Вы писали:


A>>Таким образом, берём решение задачи, оптимизированное по скорости средствами языка А, берём решение задачи, оптимизированное по скорости средствами языка Б, и сравниваем их между собой. Любые другие сравнения лишены практического смысла.


I>Чорт, по таким правилам C# слил втрое, потому что в самой сортировке только массив перетасовывается.


Речь про этот код
Автор: CoderMonkey
Дата: 10.09.17
? Он не оптимизирован нифига.

Простая замена
int Compare(TestClass x, TestClass y) => x.Id.CompareTo(y.Id);

на
int Compare(TestClass x, TestClass y) => string.CompareOrdinal(x.Id, y.Id);

ускоряет сортировку в 6-7 раз. Там же гуиды, для их сравнения не нужна культура.

Самодельный quick sort непонятно зачем. Стандартный Array.Sort работает немного быстрее.
Re[14]: Реальная производительность WebAssembly?
От: alexzzzz  
Дата: 18.09.17 14:50
Оценка:
А с такой реализацией TestClass:
class TestClass
{
    private Guid idGuid = Guid.NewGuid();
    private Guid valueGuid = Guid.NewGuid();

    public string Id => Format(idGuid);
    public string Value => Format(valueGuid);

    public override string ToString() => Id;
    private string Format(Guid guid) => guid.ToString().Replace("-", "");

    public class TestClassComparer : IComparer<TestClass>
    {
        public int Compare(TestClass x, TestClass y) => x.idGuid.CompareTo(y.idGuid);
    }
}

инициализация массива минимум в 3 раза быстрее начальной, а его сортировка минимум в 11 раз быстрее. Общее ускорение по сравнению с оригинальным кодом — более чем в 7 раз.
Отредактировано 18.09.2017 14:56 alexzzzz . Предыдущая версия . Еще …
Отредактировано 18.09.2017 14:50 alexzzzz . Предыдущая версия .
Re[14]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 14:55
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>К слову о тестах — 1 твой тест не работает


В каком конкретно месте он не работает?

I>сортировка 4.7 секунды


Ну всё, начались сказки венского леса. На самом деле — 2.5

I>JS


Вылетает с ошибкой "invalid assignment to const `watch'"

I>Как видишь, JS уже вполне себе на уровне C# работает, и даже может его обставлять.


Кроме тех случаев, когда его результат внезапно оказывается на три метра ниже уровня плинтуса.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[12]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 14:55
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я больше 10 лет на дотнете писал. Из за тяжелых фремворков геморроя гораздо больше.

I>Когда фремворк не делает того что надо, или делает не так как надо, часто вообще никаких способов обойти нет

Например?

I>А вот в JavaScript такие вещи гораздо реже встречаются. Это первое, что я заметил, когда пересел на JavaScript.


Помнится, с год назад ходил текст о выборе "правильных" инструментов для JS и их замечательной работе.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[30]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 14:58
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я как ни зайду на форум, у тебя вечно ктото сливает Ты себя лучше после такого чувствуешь или что ?


К вопросу о сливах, ты на вопрос так и не ответил. Re[24]: Реальная производительность WebAssembly?
Автор: CoderMonkey
Дата: 17.09.17
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[14]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 14:59
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>Самодельный quick sort непонятно зачем.


Чтобы сравнивать по возможности одинаковый код, естественно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[15]: Реальная производительность WebAssembly?
От: alexzzzz  
Дата: 18.09.17 15:05
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

A>>Самодельный quick sort непонятно зачем.

CM>Чтобы сравнивать по возможности одинаковый код, естественно.

Нафиг не надо. Ты там написал "А давай ка посмотрим на более близкий к реальности код?", но кто будет в реальности писать свою сортировку, если однострочный Array.Sort быстрее. Быстрее работает, быстрее писать, быстрее понимать, легче поддерживать.
Отредактировано 18.09.2017 15:05 alexzzzz . Предыдущая версия .
Re[16]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 18.09.17 15:07
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>Нафиг не надо. Ты там написал "А давай ка посмотрим на более близкий к реальности код?", но кто будет в реальности писать свою сортировку, если однострочный Array.Sort быстрее. Быстрее работает, быстрее писать, быстрее понимать, легче поддерживать.


Спасибо, Кэп. Вопрос в том, что внутри реализация может быть сильно разной.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[16]: Реальная производительность WebAssembly?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.17 15:34
Оценка:
Здравствуйте, alexzzzz, Вы писали:


A>Нафиг не надо. Ты там написал "А давай ка посмотрим на более близкий к реальности код?", но кто будет в реальности писать свою сортировку, если однострочный Array.Sort быстрее. Быстрее работает, быстрее писать, быстрее понимать, легче поддерживать.


Там писать то https://ru.wikipedia.org/wiki/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0

При этом внутри Array.Sort там была отдельная реализация для примитивных типов.
При этом мы оцениваем именно скорость Jit ров выполнения, а не конкретной реализации, которая может быть нативной на C++. Просто копироваться массивы
и солнце б утром не вставало, когда бы не было меня
Re[31]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 15:55
Оценка: -1 :)
Здравствуйте, CoderMonkey, Вы писали:

I>>Я как ни зайду на форум, у тебя вечно ктото сливает Ты себя лучше после такого чувствуешь или что ?


CM>К вопросу о сливах, ты на вопрос так и не ответил. Re[24]: Реальная производительность WebAssembly?
Автор: CoderMonkey
Дата: 17.09.17


А у тебя есть обоснование этим десяти разам или будет как с твоим тестом — всю работу за тебя делать?
Re[13]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 16:07
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

I>>Когда фремворк не делает того что надо, или делает не так как надо, часто вообще никаких способов обойти нет


CM>Например?


Это вообще проблема всех больших библиотек. В них можно делать только то, что предусмотрено и хорошо работает.
Например аппаратно ускореный wpf кривой шо сабля. А вообще больше похож на аппаратно замедленный. Как быть?

I>>А вот в JavaScript такие вещи гораздо реже встречаются. Это первое, что я заметил, когда пересел на JavaScript.


CM>Помнится, с год назад ходил текст о выборе "правильных" инструментов для JS и их замечательной работе.


Такие текста ходят про все популярные технологии.
До кучи — я чисто на js пишу уже пять лет. Ты точно хочешь открыть мне страшную тайну?
Re[14]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 16:10
Оценка:
Здравствуйте, alexzzzz, Вы писали:


A>Простая замена

A>
int Compare(TestClass x, TestClass y) => x.Id.CompareTo(y.Id);

A>на
A>
int Compare(TestClass x, TestClass y) => string.CompareOrdinal(x.Id, y.Id);

A>ускоряет сортировку в 6-7 раз. Там же гуиды, для их сравнения не нужна культура.

Проверю.

A>Самодельный quick sort непонятно зачем. Стандартный Array.Sort работает немного быстрее.


А мы сравниваем языки по перформансу, а не либы.
Re[27]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 18.09.17 16:30
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

CM>>На самом деле нет. Единственное, что тормозило в предыдущем примере — это ToString.

CM>То, что твой вывод про массивы — ложный.
_>>Так это оказывается было ещё в пользу .net сравнение. Потому как взяв твой пример теста (с объектами и динамическим выделением памяти), я бы получил проигрыш .net'а в разы...
CM>Чувак, у тебя температуры нет?

Так, давай подведём итоги, а то мне надоела эта пустая болтовня. И так по пунктам:

1. Был некий мой старый тест сравнение производительности языков на обработке двухмерных массивов. Причём всплыл он тут как тест для WebAssembly (а все остальные языки там были для сравнения), но об этом уже все благополучно забыли. ))) И в этом тесте JS и C# (без unsafe) имеют сходную производительность.
2. Тебе показался сомнительным данный результат теста, т.к. по твоему утверждению JS медленнее C# в 10-20 раз.
3. Для доказательства своего утверждения, ты предложил некий свой тест с созданием и сортировкой массива объектов.
4. По результатам запуска этого теста (точнее только его начальной части с инициализаций массивов, т.к. код с сортировкой на JS ты не осилил, а писать за тебя код для твоего теста у меня никакого желания нет) мы увидели проигрыш C# в 3 раза на твоей машине и в 8 раз на моей.

Я ничего не упустил, всё верно? ) И после всего этого ты ещё продолжаешь что-то писать в данной темке? )))
Re[15]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.09.17 17:29
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>А с такой реализацией TestClass:

A>
class TestClass
A>{
A>    private Guid idGuid = Guid.NewGuid();
A>    private Guid valueGuid = Guid.NewGuid();

A>    public string Id => Format(idGuid);
A>    public string Value => Format(valueGuid);

A>}

A>инициализация массива минимум в 3 раза быстрее начальной, а его сортировка минимум в 11 раз быстрее. Общее ускорение по сравнению с оригинальным кодом — более чем в 7 раз.

Я чет не понял, ты собираешься конвертить в строку при каждом доступе к свойству ? И зачем тебе гуид хранить, что бы памяти больше съесть ?

Выложи полную версию кода, только напиши на какой версии фремворка/шарпа надо сранивать. У меня, скажем, только 4.0 есть
Отредактировано 18.09.2017 17:53 Pauel . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.