Re[7]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.17 09:43
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

I>>https://jsperf.com/yet-another-quicksort-right/3


CM>1. Массив чисел. Я на 99.9% уверен, что они специально оптимизируются в рантайме.


А что мешает сортировать массив чисел шарпом ? Сортировка, что ты предложил, реально адская синтетика. Будешь ты сортировать числа или объекты, разницы почти никакой.

CM>2. Сравнивать разные реализации — вообще довольно бессмысленно.


Послушай внимательно — мне нет интереса портировать твой код в JS. Если тебе интересно — сделай это сам по примеру, что я дал.
Re[9]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 13.09.17 12:15
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

_>>Давай посмотрим) Проведи соответствующее тестирование и выложи здесь результаты — думаю всем будет интересно. )

CM>Я в JS не особо разбираюсь. Переведи код.

Эм, а как же это ты тогда "просто писал реальный код на JS и делал сравнение. В среднем, в 10-20 раз медленнее и еще хуже по памяти.", если при этом не особо разбираешься в JS? )
Re[10]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 13.09.17 15:27
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Эм, а как же это ты тогда "просто писал реальный код на JS и делал сравнение. В среднем, в 10-20 раз медленнее и еще хуже по памяти.", если при этом не особо разбираешься в JS? )


Писал. Но вдруг я что не так делал. Так что давай, покажи как надо.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[8]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 13.09.17 15:28
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Послушай внимательно — мне нет интереса портировать твой код в JS. Если тебе интересно — сделай это сам по примеру, что я дал.


Зато болтать языком тебе есть интерес.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[9]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.17 16:27
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

I>>Послушай внимательно — мне нет интереса портировать твой код в JS. Если тебе интересно — сделай это сам по примеру, что я дал.


CM>Зато болтать языком тебе есть интерес.


Я не очень понимаю, зачем мне это надо. Пока что у меня есть вещи гораздо интереснее. В своё время у меня было куча задач на профилирование и того, и другого. Как то так.
Re[10]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 13.09.17 16:29
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Пока что у меня есть вещи гораздо интереснее.


Например, писать бессмысленные бездоказательные сообщения в большом количестве.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.17 16:29
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

CM>И кстати, тестовый код:

CM>

CM>var arrTest = arr;
CM>quickSort(arrTest);

CM>Если я правильно понимаю, то первая строка копирует только ссылку на массив, а не создает копию всего массива?

Именно так. Копия массива создается например так [].concat(arr)
Re[11]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.17 16:48
Оценка:
Здравствуйте, CoderMonkey, Вы писали:

I>>Пока что у меня есть вещи гораздо интереснее.


CM>Например, писать бессмысленные бездоказательные сообщения в большом количестве.


Ога. Я тебе даже больше скажу — есть задачи, в которых JS порвет шарп дотнетный, как тузик грелку
Re[12]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 13.09.17 17:02
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ога. Я тебе даже больше скажу — есть задачи, в которых JS порвет шарп дотнетный, как тузик грелку


Балаболить все горазды. Ты код показывай.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[8]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 13.09.17 17:02
Оценка: +1 :)
Здравствуйте, Ikemefula, Вы писали:

I>Именно так. Копия массива создается например так [].concat(arr)


В таком случае, сортировка делается только на первом вызове, а все последующие гоняются на уже отсортированных данных. Какой идиот так бенчмарки делает?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[13]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.09.17 08:57
Оценка: :))
Здравствуйте, CoderMonkey, Вы писали:

I>>Ога. Я тебе даже больше скажу — есть задачи, в которых JS порвет шарп дотнетный, как тузик грелку


CM>Балаболить все горазды. Ты код показывай.


Ты хочешь, что бы я тебе чего то подоказывал, правильно я тебя понял ?
Re[9]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.09.17 09:32
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

I>>Именно так. Копия массива создается например так [].concat(arr)


CM>В таком случае, сортировка делается только на первом вызове, а все последующие гоняются на уже отсортированных данных. Какой идиот так бенчмарки делает?


Я тебе дал пример кода сортировки, а не образец замеров. jsperf глючит, не дает сохранить кейсы.
Re[12]: Реальная производительность WebAssembly?
От: Слава  
Дата: 14.09.17 10:29
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ога. Я тебе даже больше скажу — есть задачи, в которых JS порвет шарп дотнетный, как тузик грелку


Покажи такую задачу. Хотя бы постановку её дай.
Re[11]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 14.09.17 12:39
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

_>>Эм, а как же это ты тогда "просто писал реальный код на JS и делал сравнение. В среднем, в 10-20 раз медленнее и еще хуже по памяти.", если при этом не особо разбираешься в JS? )

CM>Писал. Но вдруг я что не так делал. Так что давай, покажи как надо.

Я собственно уже всё показал, со всеми измерениями и т.п. Ссылка имеется выше. Теперь твоя очередь, раз тебе не очень нравится мой вариант теста — покажи свой. )
Re[10]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 14.09.17 14:27
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я тебе дал пример кода сортировки, а не образец замеров. jsperf глючит, не дает сохранить кейсы.


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

I>Ты хочешь, что бы я тебе чего то подоказывал, правильно я тебя понял ?


Было бы довольно глупо ожидать этого от тебя. Так что продолжай балаболить.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[11]: Реальная производительность WebAssembly?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.09.17 14:57
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

I>>Я тебе дал пример кода сортировки, а не образец замеров. jsperf глючит, не дает сохранить кейсы.


CM>Какой идиот сравнивает разные реализации?


А кто тебя к этому призывал ? Стесняюсь спросить, что будет, если я дам тебе пример кода, который твой диск стирает ?
Re[12]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 14.09.17 21:11
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Я собственно уже всё показал, со всеми измерениями и т.п. Ссылка имеется выше. Теперь твоя очередь, раз тебе не очень нравится мой вариант теста — покажи свой. )


Начнем с чего-нибудь простого.

        function CreateId()
        {
            var res = Math.floor(Math.random() * Math.pow(10, 8));
            return res.toLocaleString('en-US', {minimumIntegerDigits: 10, useGrouping:false});
        }

        class TestClass
        {
            constructor() {
                this.Id = CreateId();
                this.Value = CreateId();
            }
        }

        var startInit = performance.now();

        var vals = [];
        for (var i = 0; i < 1000 * 1000; i++)
        {
            vals.push(new TestClass());
        }

        var endInit = performance.now();
        log("Init: " + (endInit - startInit) + " msecs");


Сколько времени выполняется код и сколько отжирается памяти?
А я пока за попкорном схожу.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[13]: Реальная производительность WebAssembly?
От: alex_public  
Дата: 15.09.17 05:42
Оценка: :)
Здравствуйте, CoderMonkey, Вы писали:

_>>Я собственно уже всё показал, со всеми измерениями и т.п. Ссылка имеется выше. Теперь твоя очередь, раз тебе не очень нравится мой вариант теста — покажи свой. )

CM>Начнем с чего-нибудь простого.
CM>
CM>        function CreateId()
CM>        {
CM>            var res = Math.floor(Math.random() * Math.pow(10, 8));
CM>            return res.toLocaleString('en-US', {minimumIntegerDigits: 10, useGrouping:false});
CM>        }

CM>        class TestClass
CM>        {
CM>            constructor() {
CM>                this.Id = CreateId();
CM>                this.Value = CreateId();
CM>            }
CM>        }

CM>        var startInit = performance.now();

CM>        var vals = [];
CM>        for (var i = 0; i < 1000 * 1000; i++)
CM>        {
CM>            vals.push(new TestClass());
CM>        }

CM>        var endInit = performance.now();
CM>        log("Init: " + (endInit - startInit) + " msecs");
CM>


CM>Сколько времени выполняется код и сколько отжирается памяти?

CM>А я пока за попкорном схожу.

Ну давай начнём. ))) На моём компьютере этот код выполняется в среднем за 200 миллисекунд. Ну естественно, если заменить бредовую в данном контексте строку "toLocaleString('en-US', {minimumIntegerDigits: 10, useGrouping:false})" на эквивалентную ей по эффекту, но подходящую "toString().padStart(10, '0')".

Да, и что самое забавное, аналогичный этому коду вариант на C# (вот взял прямо твой код, закомментировал в нём вызов "QuickSort(vals, Compare);" и поменял "Guid.NewGuid().ToString().Replace("-", "")" на "Math.Floor(gen.NextDouble()*Math.Pow(10, 8)).ToString().PadLeft(10, '0')" (для полной корректности, хотя по факту эта мелочь не влияет) исполняется у меня какие-то невероятные 1600 миллисекунд!

P.S. А это у тебя так задумано, что первые разряды id всегда равны нулю или это тоже просто от неумения? )))
Re[14]: Реальная производительность WebAssembly?
От: CoderMonkey  
Дата: 15.09.17 14:32
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ну давай начнём. ))) На моём компьютере этот код выполняется в среднем за 200 миллисекунд. Ну естественно, если заменить бредовую в данном контексте строку "toLocaleString('en-US', {minimumIntegerDigits: 10, useGrouping:false})" на эквивалентную ей по эффекту, но подходящую "toString().padStart(10, '0')".


Это очень интересно, потому что у меня он исполняется 30 секунд и выжирает до 7 гигов максимум. Так что, видимо, не очень то эквивалентную.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.