Oleg
Предупреждаю - я долго не думал и не оптимизировал особо :D https://repl.it/JWPX/10
Rafael 🌵
заразно тут с вами сидеть, мне еще работать надо!
Rafael 🌵
Предупреждаю - я долго не думал и не оптимизировал особо :D https://repl.it/JWPX/10
кстати должно быть близко по скорости на маленьких массивах
Rafael 🌵
а вот на больших я опять выйграл!
Oleg
Нужны замеры
Rafael 🌵
Нужны замеры
target.push(arr[i]);
Rafael 🌵
вот из-за этого, прикинь если фильтровать будет нечего? ты на каждой итерации будешь добавлять элекмент в массив, выделенная память кончается - уходим на реалокацию
Oleg
Так добавляется же только уникальный
Oleg
Или про что ты?
Oleg
А, или про то что типа если там и не было неуникальных то?
Oleg
Если можно менять исходный массив - можно в нем тогда всё черное дело делать
Rafael 🌵
Так добавляется же только уникальный
да, но прикинь если на входе только уники
Oleg
Ну тут если просто в лоб смотреть то увы, страдать
Rafael 🌵
мне просто интересно насколько это быдет быстрее или медленнее
Oleg
Если же можно менять исходный массив - уже иначе может быть
Rafael 🌵
ксттаи попробуй через splice
например forEach + splice внутри
Rafael 🌵
например forEach + splice внутри
ан нет, не прокатит
Rafael 🌵
еще можно через Map, из которого потом массив вытянуть
Дима
https://repl.it/JWPX/12
Oleg
Можно ещё извращенский алгоритм когда мы сохраняем в переменной сдвиг, итерируемся по всем элементам, находя одинаковый - удаляем его, переходя на следующий - двигаем вбок, если нашли уже 2 тех что были одинаковы - сдвиг на 2, если дошли до конца - удалять
Rafael 🌵
https://repl.it/JWPX/12
и кинь скриин с результатами
Sergey
Новая встроенная в npm 5.2 утилита npx умеет запускать локальные пакеты, глобальные без установки и ещё кучу другого https://medium.com/p/55f7d4bd282b
Oleg
О, да я топ 2
Rafael 🌵
О, да я топ 2
у меня ты в 2 раза по скорости проседаешь
Rafael 🌵
https://repl.it/JWPX/12
кстати, сделай еще сортировку по скорости, чтобы было видно, кто во сколько раз медленнее
Oleg
Кстати, если поменять мои переменные с var на const и let - медленнее исполняется. Аее, всегда это знал, теперь убедился ещё больше.
Oleg
Замыкание для фора создается лишнее.
Oleg
Было 140к, стало 155к
Oleg
С другой стороны это не про это бенч
Rafael 🌵
у тебя же var хостится, а let - нет
Oleg
Вот
Oleg
Чтобы лет был - нужно подзамыкание создавать
Oleg
А для var оно не создается
Rafael 🌵
угу
Oleg
У меня var
Oleg
Если менять на лет и конст - падает производительность
Rafael 🌵
ну ты так же и с let мог бы переменную заранее объявить
Rafael 🌵
вне цикла, а потом for (myLet in myArr)
Oleg
Надо замерить
Андрей
Если менять на лет и конст - падает производительность
А как ты проверял? Мне кажется, что просто jit будет дольше чуть работать, а так пофиг.
Rafael 🌵
с let переменная на каждой итерции создается
Rafael 🌵
это по спекам так должно быть
Дима
https://repl.it/JWPX/13
Oleg
В общем как-то слишком разные цифры всегда, нельзя по этому бенчу совсем точно сказать
Андрей
не будет
Ну типа проверка на объявление и всё такое.
Дима
Дима
У себя я прогоняю на сильно увеличенной сложности и размере, так что на скрине будет точнее)
Rafael 🌵
а не, хотле чтобы был вывод, где лучшее решение дает 1, а все остальые во сколько раз медленее
Denis
Кто нибудь видел плагин scroll parallax, чтоб можно было добавлять несколько слоев и указывать в какое направление двигать тот или иной слой?
Андрей
ээ, какая проверка?
переобъявление, хотя это такая мелочь.
Rafael 🌵
хотя можно по спекам проверить
Андрей
а зачем?
Эм... Спека, нет?)
Dmitry
люди, можете помочь, я получаю обложку аудио файла из id3 тегов, получаю я ее в виде массива, массив может быть огромным смотря сколько цветов в обложке, дальше в for я этот массив собираю в base64 строку, и вывожу в приложении, но это может занять очень много времени, некоторые большие обложки аш по 4 секунды тормозят дальнейшее исполнение кода, посоветуйте, что можно с этим сделать?
Dmitry
Rafael 🌵
Эм... Спека, нет?)
как это гуглить в спеках? for loop?
Андрей
как это гуглить в спеках? for loop?
Эм, нет. const и let же могут только 1 раз объявлять переменную, в отличии от var
Anonymous
fe
Oleg
Хотел переписать пример на мапах
Oleg
А этот репл не умеет мапы...
Дима
https://repl.it/JWPX/14
Oleg
В консоль как минимум выводить
Oleg
Я сейчас кое-чего доработаю, может быстрее выйдет :D
Дима
Rafael 🌵
👍🏻
Дима
Бтв, заметьте, насколько я оптимизировал первоначальное иммутабельное решение)
Rafael 🌵
ну хотяб во сколько раз
Дима
Было медленнее чем у ивана на четверть
Rafael 🌵
не плох, не плох👍🏻