Size: a a a

Dart & Flutter по-русски

2020 May 26

НК

Назар Калитюк... in Dart & Flutter по-русски
ну файл json откуда я взял это 3 занимает, и в монге 3.
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
интересно насколько этот вариант на батарею влияет и возможные лаги именно из за того, что много данных в памяти. Потому что я думаю что падение фпс из за поиска это не проблема пока.
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Назар Калитюк
в 2 раза дольше. Но все равно это 0.03 сек на 50к элементов
Смари как можешь слегка ускорить:


class A {
 final int first3hash; // myString.substring(0, 3).hashCode;
 final String myString;
}

final String search = r'bla bla bla bla';
final int search3hash = search.substring(0, 3).hashCode;
List<A>.where((A a) => a.first3hash == search3hash && a.myString.startWith(search));
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Идея, думаю, понятная
источник

D

DK in Dart & Flutter по-русски
Назар Калитюк
интересно насколько этот вариант на батарею влияет и возможные лаги именно из за того, что много данных в памяти. Потому что я думаю что падение фпс из за поиска это не проблема пока.
юзер всегда скажет другое
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Таким образом можешь сделать даже через hive LazyBox, записав в коробку под ключем из хэшкода первых трех букв массив всех подходящих слов.
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
(3 потому что я полагаю, что именно с этого числа символов ты будешь оформлять live search, такто можешь сделать и 2 вполне себе и даже 1, даже с 1 уже раз в ~20-50 ускоришь)
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
а по хорошему нужно еще и наиболее часто выбираемые элементы быстрее отдавать. Потому что в базе 17к, а реально же будут 1к искать в 99% случаев
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
это все пользователи, а конкретный вообще только 100 элементов
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Назар Калитюк
а по хорошему нужно еще и наиболее часто выбираемые элементы быстрее отдавать. Потому что в базе 17к, а реально же будут 1к искать в 99% случаев
Не, эт не то
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Попробуй как я написал выше
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Вес тебе тут явно рано придумывать, если отдаешь все подпадающее под поиск
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
еще может же быть разница в устройствах. Может на стареньких телефонах оно медленнее будет
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
🅵🅾️🆇
Смари как можешь слегка ускорить:


class A {
 final int first3hash; // myString.substring(0, 3).hashCode;
 final String myString;
}

final String search = r'bla bla bla bla';
final int search3hash = search.substring(0, 3).hashCode;
List<A>.where((A a) => a.first3hash == search3hash && a.myString.startWith(search));
Так сделать говорю попробуй
источник

F

Fortune's Desire in Dart & Flutter по-русски
Назар Калитюк
еще может же быть разница в устройствах. Может на стареньких телефонах оно медленнее будет
Насколько стареньких
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Смысл спрашивать, если не следуешь рекомендациям?
источник

F

Fortune's Desire in Dart & Flutter по-русски
телефоны 4-5 лет уже в пыль развалились
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
🅵🅾️🆇
Смари как можешь слегка ускорить:


class A {
 final int first3hash; // myString.substring(0, 3).hashCode;
 final String myString;
}

final String search = r'bla bla bla bla';
final int search3hash = search.substring(0, 3).hashCode;
List<A>.where((A a) => a.first3hash == search3hash && a.myString.startWith(search));
не совсем понял что сделать
источник

НК

Назар Калитюк... in Dart & Flutter по-русски
записать каждому обьекту хэш первых 3 букв и по них искать в первую очередь?
источник

🅵

🅵🅾️🆇 in Dart & Flutter по-русски
Назар Калитюк
не совсем понял что сделать
для начала добавь в объект еще 1 int поле: вычисляемое в конструкторе объекта как твоястрока.substring(0, 3).hashCode;
источник