Size: a a a

2017 June 02

RL

Roman Liutikov in React Kyiv
Kateryna Porshnieva
Реселект конечно огонь, но надо мерять на конкретных кейсах, не уверена, что тут он даст большой выигрыш
Я добавил бы, что реселект — это по сути императивный язык запросов в состояние и эффективность такого запроса зависит от того, как ты его напишешь. Та же БД на клиенте умеет оптимизировать и кешировать запросы и агрегации за тебя. Хотя в большинстве случаев использование базы неоправданно :)
источник

RL

Roman Liutikov in React Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
На самом деле, то что мы пилим, надо было делать как локальное ПО, а не веб. Было б в 100500 раз лучше. Но раз уж взялись, надо доделать.
Так что в итоге придумали?)
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
Так что в итоге придумали?)
В итоге у меня всё таки самая простая функция фильтрования с дебоунсом. На 10к строк, полный обход массива и ререндер занимает примерно 1,3 секунды (было 1.5). Улучшил с митапа чанкование за счет пагинации.
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
...ну как простая, скажем сложно-простая.
источник

RL

Roman Liutikov in React Kyiv
А что-то типа бинарного поиска?
источник

Дп

Джон простоДжон in React Kyiv
там сортировка только по одному полю, как я понял
источник

Дп

Джон простоДжон in React Kyiv
интересно, если бы indexOf поменять на startsWith и разбивать все строки на массив пробелов, было ли быстрее
источник

RL

Roman Liutikov in React Kyiv
Тогда наверное есть смысл попробовать структуру для поиска по тексту...
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
А что-то типа бинарного поиска?
Не, при бинарном поиске О(лог н).
источник

RL

Roman Liutikov in React Kyiv
Этого недостаточно?
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Джон простоДжон
там сортировка только по одному полю, как я понял
не, по всем
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
Этого недостаточно?
у меня практически везде О(1), и только при сравнении О(н)
источник

RL

Roman Liutikov in React Kyiv
Поиск по дереву log n, уже лучше, чем n
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
Поиск по дереву log n, уже лучше, чем n
но для АВЛ дерева надо сделать оч много операции предварительно. массив в данном случае самое простое.
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
а вот с объектами беда канечно в ЖС. Они медленные и не дешевые.
источник

RL

Roman Liutikov in React Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
но для АВЛ дерева надо сделать оч много операции предварительно. массив в данном случае самое простое.
Один прогон в начале для составления дерева может стоить того, чтобы потом делать быстрый поиск.
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
Один прогон в начале для составления дерева может стоить того, чтобы потом делать быстрый поиск.
ну так это ж надо продумать пэрэнтов, чайлдов. а у меня эти данные не связанные. Если б была такая задача, было б круто. Помниться мне, самый быстрый поиск у графов, не так ли?
источник

RL

Roman Liutikov in React Kyiv
👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀
ну так это ж надо продумать пэрэнтов, чайлдов. а у меня эти данные не связанные. Если б была такая задача, было б круто. Помниться мне, самый быстрый поиск у графов, не так ли?
Про графы не в курсе. Если индексировать по тексту, то ноды могут ссылаться на соответствующие записи . Ну а каждая нода это буква.
источник

RL

Roman Liutikov in React Kyiv
Нужно пошуршать по структурам данных, я могу ошибаться :)
источник

👨M

👨🏼‍💻 Mr. 🅺 Яблукович 🍎🍀 in React Kyiv
Roman Liutikov
Про графы не в курсе. Если индексировать по тексту, то ноды могут ссылаться на соответствующие записи . Ну а каждая нода это буква.
если сугубо текст - то да. но появится проблема, если букв будет больше чем 2 и тебе надо будет совпадение.
источник