Показать сообщение отдельно
  #12 (permalink)  
Старый 02.08.2020, 00:34
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Сообщение от Nexus
Может тогда лучше Object.values использовать?
Нет смысла. Эта операция не тормозит в отличие от других

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

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

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

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

Сообщение от MallSerg
А строки 50, 67 как раз и есть эти побочные эффекты.
Собственно, да, профайлер эти строки и помечает как самые тяжелые

Сообщение от Alexandroppolus
Попробовать использовать Map вместо объекта.
Пробовал. Или нет разницы или даже медленнее получается

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

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