Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ускорите код? (https://javascript.ru/forum/misc/80786-uskorite-kod.html)

Vlasenko Fedor 01.08.2020 22:56

Цитата:

Сообщение от Shitbox2
ускорить функцию groupBy хотя бы в 1,5 раза

может вовсе не вней проблема, а в объеме передаваемых ей данных
покажите замеры производительности, тесты

Shitbox2 02.08.2020 00:34

Цитата:

Сообщение от Nexus
Может тогда лучше Object.values использовать?

Нет смысла. Эта операция не тормозит в отличие от других

Цитата:

Сообщение от Nexus
Сообщение от Shitbox2
Самая тяжелая операция тут - let group = groupsMap[groupValue]
Вот уж вряд ли.

Посмотрите в профайлере :-)

Цитата:

Сообщение от Nexus
Почему вы так считаете? Кол-во итераций уменьшится вдвое, скорость соответственно должна увеличиться.

Если напишете пример, который продемонстрирует прирост производительности, я буду только рад. Очень сомневаюсь, что это что-то даст

Цитата:

Сообщение от Nexus
И в своем коде вы замеряете не только скорость работы вашей функции группировки, но и скорость генерации ваших данных.

Каюсь. Ошибся в тексте задачи, поправил уже. Когда тестил и профилировал замерял только группировку.

Цитата:

Сообщение от MallSerg
Тут с логикой проблема, управление данными осуществляется в приложении алгоритмами собранными топориком на коленке.
Задачи связанные с группировкой, хранением, сортировкой, индексацией и выборкой данных лучше решать с помощью баз данных.

Согласен, но конкретно в данной ситуации это оправдано. Когда-нибудь группировка переползет ближе к БД, конечно.

Цитата:

Сообщение от MallSerg
А строки 50, 67 как раз и есть эти побочные эффекты.

Собственно, да, профайлер эти строки и помечает как самые тяжелые

Цитата:

Сообщение от Alexandroppolus
Попробовать использовать Map вместо объекта.

Пробовал. Или нет разницы или даже медленнее получается

Цитата:

Сообщение от Alexandroppolus
Читерство: суммируемые поля оформить как проперти, можно с мемоизацией.

Тут не очень понял. Можно подробнее?

Цитата:

Сообщение от Vlasenko Fedor
может вовсе не вней проблема, а в объеме передаваемых ей данных
покажите замеры производительности, тесты

Пример достаточно достоверный. В реальности 50000 строк, содержащих разные типы. В одной колонке скорее всего все данные будут одного типа, либо будут отсутствовать.


Часовой пояс GMT +3, время: 13:14.