Aman
у людей перегрузка инфы наоборот, имхо
Khangeldy
Что быстрее двойной for или двойной reduce?
Дима
Тебя это волновать не должно
Алексей
Настало время экономить на спичках
Ян
скоро пойдут ассемблерные вставки
Дима
Я сейчас оптимизирую по скорости модуль pipe / compose
Дима
Для ощущения разницы for / reduce приходится давать серьёзную нагрузку
А ВОТ ТЕПЕРЬ ПАБЛИК
а я картинки сжал
Vlad
Дима
а я картинки сжал
Я не в плане того что проект ускоряю, я просто делаю самую быструю реализацию pipe / compose и поэтому зависаю в бенчах
Serhii
Самая быстрая по сравнению с чем
Serhii
Жкверийным?
Дима
Очень круто на самом деле осознавать что смог обогнать лодаш))
Serhii
И сколько минимум нужно данных чтобы увидеть разницу?
Дима
Compose длиной в типичный редакс стейт
Khangeldy
Дима
Но я пока рассуждаю в op / sec, а человеческие выводы пока только в процессе
Дима
Пока расклад такой
Дима
Дима
При том, что у меня модуль принимает массивы функций любой вложенности
Алексей
что-то мне кажется, что производительность может меняться, причём довольно значительно в зависимости от JS движка
Дима
Да
Дима
Три этапа — определиться с наиболее быстрым подходом, сформировать наиборее реалистичные бенчи, оптимизировать на различных движках
Дима
Вот я пока на втором этапе
Алексей
поэтому я на самом деле не могу согласиться с таким вниманием к производительности, понятное дело, что производительность - это важно, но на мой взгляд о производительности нужно думать в последнюю очередь
Алексей
а если уж и думать, то в правильном ключе
Дима
Ты о производительности не должен думать вообще
Алексей
например делать упор на производительность в мобилках
Алексей
так как на десктопах нужно постараться, чтобы сделать просадку производительности
Дима
Ты должен писать свои задачи и проекты не думая о экономии на спичках. А о спичках должны думать создатели модулей
Дима
Алексей
Oleg
Сильно от задач зависит всё это
Oleg
Чаще не нужно оное, но вот когда нужно...
Дима
Oleg
Ну так тред пошел о том что оптимизация не нужна
Oleg
Пришлось надеть маску капитана
Алексей
вообще надо смотреть насколько часто будет дёргаться библиотека
Таймураз
Oleg
А
Oleg
Ну тогда ок
Oleg
😄
Таймураз
И хотел скапитанить первее
Алексей
тот же React например должен быть оптимизирован по самые яйца, так как он дёргается ПОСТОЯННО
Таймураз
А еще я уверен, что если Ельцин задумался о производительности, то зазря он это не сделает
Алексей
и опять же, лучше даже оптимизировать по памяти, чем по быстродействию
Алексей
по крайней мере для фронтенда
Алексей
как мне кажется
Дима
Дима
Вот в этом вся и фигня
Таймураз
как мне кажется
Такие разговоры обычно за рюмочкой или бокальчиком вести надо)
Алексей
React != Redux
Дима
СПАСИБО БРО
Алексей
Vlad
Сап, дай ссылку на свой репо
Vitaly
Дима
Я пока локально пишу, ща выложу тогда
Дима
Модуль — ensue@beta
Vlad
давай
Дима
На идею меня натолкнула строка из тайпнгов ramda, ну где у них там на каждое число переданных функций свой pipeN
Дима
То есть можно развернуть все эти вычисления по switch/case и тем самым сэкономить значительное число вычислений
Vlad
const pipe3 = (f1, f2, f3) => (...args) => f1(f2(f3(...args)));
Vlad
можно быстрее написать?
Дима
Ага
Vlad
мне кажется быстрее нельзя
Vlad
вангую у них перф проседает из-за аргументов
Дима
Да
Vlad
а кроме этого, ещё где-то?
Дима
Во вложенном вызове функций
Дима
У них pipe вызывает _arity, reduce и tail, а те дёргают следующие функции
Дима
Если писат такие низкоуровневые вещи, то желательно без таких вызовов обходиться
Vitaly
мы так и до кодогенерации скоро дойдем 😂
Дима
Ну уже близко, да 😄
Дима
Кстати хорошая мысль
Oleg
А если на ноде то можно и нативные модули