Сообщение от Nexus
|
Может тогда лучше Object.values использовать?
|
Нет смысла. Эта операция не тормозит в отличие от других
Сообщение от Nexus
|
Сообщение от Shitbox2
Самая тяжелая операция тут - let group = groupsMap[groupValue]
Вот уж вряд ли.
|
Посмотрите в профайлере :-)
Сообщение от Nexus
|
Почему вы так считаете? Кол-во итераций уменьшится вдвое, скорость соответственно должна увеличиться.
|
Если напишете пример, который продемонстрирует прирост производительности, я буду только рад. Очень сомневаюсь, что это что-то даст
Сообщение от Nexus
|
И в своем коде вы замеряете не только скорость работы вашей функции группировки, но и скорость генерации ваших данных.
|
Каюсь. Ошибся в тексте задачи, поправил уже. Когда тестил и профилировал замерял только группировку.
Сообщение от MallSerg
|
Тут с логикой проблема, управление данными осуществляется в приложении алгоритмами собранными топориком на коленке.
Задачи связанные с группировкой, хранением, сортировкой, индексацией и выборкой данных лучше решать с помощью баз данных.
|
Согласен, но конкретно в данной ситуации это оправдано. Когда-нибудь группировка переползет ближе к БД, конечно.
Сообщение от MallSerg
|
А строки 50, 67 как раз и есть эти побочные эффекты.
|
Собственно, да, профайлер эти строки и помечает как самые тяжелые
Сообщение от Alexandroppolus
|
Попробовать использовать Map вместо объекта.
|
Пробовал. Или нет разницы или даже медленнее получается
Сообщение от Alexandroppolus
|
Читерство: суммируемые поля оформить как проперти, можно с мемоизацией.
|
Тут не очень понял. Можно подробнее?
Сообщение от Vlasenko Fedor
|
может вовсе не вней проблема, а в объеме передаваемых ей данных
покажите замеры производительности, тесты
|
Пример достаточно достоверный. В реальности 50000 строк, содержащих разные типы. В одной колонке скорее всего все данные будут одного типа, либо будут отсутствовать.