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

Сообщение Re[73]: Реальная производительность WebAssembly? от 28.10.2017 11:35

Изменено 28.10.2017 11:43 Pauel

Re[73]: Реальная производительность WebAssembly?
Здравствуйте, CoderMonkey, Вы писали:

I>> Тест показывает только узкое место. Если JS переписать инициализацию на энергичный цикл, что будет, ась ? Попробуй на досуге.


CM>А, ну замечательно. "Это в JS тормозит, мы это измерять не будем. То в JS тормозит, мы его измерять тоже не будем."


А что, по твоему, мы замерили в инициализации в JS ? Как раз то, что тормозит.
А если поменять ленивую часть, на энергичную, получим гораздо более другой расклад. Следовательно ленивость и есть узкое место в JS.

I>>1. JS выдает очень большой разброс в показаниях.

I>> Ты ведь видел это, не так ли ?

CM>Есть одна небольшая проблема. Из моей серии замеров, даже минимальное число примерно соответствует твоему — но только это на моем железе, которое в два раза быстрее твоего. Нестыковочка.


А ты не пробовал дочитать до конца, прежде чем срывать покровы ?

I>> 1.5с — как думаешь, какое число я взял из __серии__ замеров ?


CM>Минимальное, конечно же? Я вижу, без мухлежа ты просто жить не можешь.


Минимальное, потому что в JS, в отличие от C#, GC слишком сильно вмешивается в работу основного потока. И много других фокусов происходит, которых в C# нет.

I>>2. _точная_ версия твоего JS-рантайма какая ? А у меня ? Надеюсь, ты помнишь, что речь была про эксперимернтальный рантайм ?


CM>Да-да, я помню. А какой чудак вообще опирается на данные экспериментальных версий? Стандартный выбор нормального человека — это последний релиз.


Итого — по существу возражений нет ?

I>>На стандартном числа совсем другие, но расклад тот же — инициализация в пользу C#, сортировка — в пользу JS.


CM>Только если в JS версии подмухлевать с форматтером и компарером, как мы уже обнаружили. А если не мухлевать, то JS сливает в обеих половинах

теста.

До кучи — .Net Jit более качественный, чем JS. А это значит, что разница в железе на JS видна слабее. Что вобщем очевидно. Кроме того, JS сам по себе дает больше промахов по кешу, т.е. влияние проца и кеша будет меньше.
Есть еще один нюанс — версии рантаймов .Net у нас разные. Здесь тоже есть отличия. А это значит, что железо, возможно, отличается не в двое, а меньше. Это тоже нужно учитывать.
Re[73]: Реальная производительность WebAssembly?
Здравствуйте, CoderMonkey, Вы писали:

I>> Тест показывает только узкое место. Если JS переписать инициализацию на энергичный цикл, что будет, ась ? Попробуй на досуге.


CM>А, ну замечательно. "Это в JS тормозит, мы это измерять не будем. То в JS тормозит, мы его измерять тоже не будем."


А что, по твоему, мы замерили в инициализации в JS ? Как раз то, что тормозит.
А если поменять ленивую часть, на энергичную, получим гораздо более другой расклад. Следовательно ленивость и есть узкое место в JS.

I>>1. JS выдает очень большой разброс в показаниях.

I>> Ты ведь видел это, не так ли ?

CM>Есть одна небольшая проблема. Из моей серии замеров, даже минимальное число примерно соответствует твоему — но только это на моем железе, которое в два раза быстрее твоего. Нестыковочка.


А ты не пробовал дочитать до конца, прежде чем срывать покровы ?

I>> 1.5с — как думаешь, какое число я взял из __серии__ замеров ?


CM>Минимальное, конечно же? Я вижу, без мухлежа ты просто жить не можешь.


Минимальное, потому что в JS, в отличие от C#, GC слишком сильно вмешивается в работу основного потока. И много других фокусов происходит, которых в C# нет.

I>>2. _точная_ версия твоего JS-рантайма какая ? А у меня ? Надеюсь, ты помнишь, что речь была про эксперимернтальный рантайм ?


CM>Да-да, я помню. А какой чудак вообще опирается на данные экспериментальных версий? Стандартный выбор нормального человека — это последний релиз.


Итого — по существу возражений нет ?

I>>На стандартном числа совсем другие, но расклад тот же — инициализация в пользу C#, сортировка — в пользу JS.


CM>Только если в JS версии подмухлевать с форматтером и компарером, как мы уже обнаружили. А если не мухлевать, то JS сливает в обеих половинах

теста.

До кучи — .Net Jit более качественный, чем JS. А это значит, что разница в железе на JS видна слабее. Что вобщем очевидно. Кроме того, JS сам по себе дает больше промахов по кешу, т.е. влияние проца и кеша будет меньше.
Есть еще один нюанс — версии рантаймов .Net у нас разные. Здесь тоже есть отличия. А это значит, что железо, возможно, отличается не в двое, а меньше. Это тоже нужно учитывать.

Напоследок — я то пофиксил и сортировку в C#, а ты замеряешь свой "алгоритм" у которого всего лишь асимптотика такая же, а абсолютно число компараций отличается. Хы-хы.