|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__ miltorg __Avenger__, Тихо-тихо, боясь спугнуть: - Ура... У нас есть ответ? А на mySQL это получится? Конечно. Там же примитивные запросы без всяких bit_count. Только join с группировкой и все!!! Для начало надо исходные данные положить в таблицу Код: sql 1.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:22 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, Как это всё переписать на mySQL? Помоожете? Пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:23 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, это путь прошлой темы, там на 5000строк раскручиваем до 1млрд? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:25 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg Как это всё переписать на mySQL? Помоожете? Пожалуйста. используй 22276803 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:25 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov __Avenger__, это путь прошлой темы, там на 5000строк раскручиваем до 1млрд? Да, но на этих данных миллиард не получился, всего лишь - 319139 строк с 10-ками. Да и что такое миллиард? У меня сейчас БД по 16 ТераБайт!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:28 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, Началось... Ответа нет получается опять? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:30 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, 10-ки я расчитал за 1 день. 9-ки считало - неделю А ещё нужны 8-ки, 7, 6-ки Плюс к ним будут каждый день дополнятся строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:32 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg __Avenger__, Началось... Ответа нет получается опять? Так а в чем сложность разобрать данные из строки в столбец? Как пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:32 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
__Avenger__, ну с такой техникой понятно) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:32 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg __Avenger__, 10-ки я расчитал за 1 день. 9-ки считало - неделю А ещё нужны 8-ки, 7, 6-ки Плюс к ним будут каждый день дополнятся строки. зачем тогда делать 10-ки потом 9-ки ..... 6-ки если надо раз сделать самый минимум чисел, допустим 6, слить в таблицу и из нее получить и 6-7-8-9-10-ки или залить >=10 затем подливать в таблицу =9 =8 =7 =6 совпадений чтобы было быстрее затем только 1 новую строку переводить в биты и также искать вхождения >=6 и добавлять в "таблицу 1-го прохода" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:39 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
в 9ках 288тыс по данным miltbase1.txt /если я правильно запомнил/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:41 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Затем, что 10-ку мой ноутбук обрабатывает в течении часа. А 6-ку он говорит, что у него таблица переполнилась после 4 часов работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:55 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg, Это я про первый проход. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 21:57 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg, какой у вас ноутбук - сколько RAM не может быть чтоб <4G сколько стоит параметр innodb_buffer_pool_size в my.cnf? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:02 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg miltorg, Это я про первый проход. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:04 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, Я вот только не понял, similar-chromosome-lookup-1.0.jar , он действительно делает 25 млн. попарных сравнений каждого с каждым, или там что-то типа градиентного спуска? Можно им получить одну или все дуплицированные подпоследовательности длиной 9, которые не являются частью более длинных? Если да, то уверую окончательно (хотя этот метод квадратичный по отношению к числу записей в исходной таблице, а брутфорс - линейный). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:07 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Victor Ichalov,все дуплицированные подпоследовательности длиной 9, которые не являются частью более длинных?ну там так и есть, судя по предоставленным кускам с выхода. Т.е. 9 -ки не входят в 10 ки не входят в 11 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:12 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Я вот только не понял, similar-chromosome-lookup-1.0.jar , он действительно делает 25 млн. попарных сравнений каждого с каждым, или там что-то типа градиентного спуска? Он - действительно квадратичный. Никакого градиентного спуска нет. Да. Делает 5000 * 5000 / 2 = 12500 сравнений. Деление на 2 потому что все пары не нужны а только верхняя треугольная часть матрицы пар. Но ваш вопрос касается чего? Генерации индекса? Или операции поиска. Давайте просто разделим эти два понятия. Андрей в начале говорил что база будет неизменна. И лишь периодически владелец будет делать в нее insert новых хромосом (или лотерейных билетов). Тоесть. Если у нас уже будет построен по ней индекс - то наша задача сводится только к периодической вставке в него новых строк. Тоесть я рассуждаю как DBA в условиях эксплуатации инфо-системы которая уже инициализирована. Моя идея - предварительная подготовка данных таким образом чтобы быстро обслужить входящие запросы клиента. Все прочие цели - такие как выдать на экран "ВСЁ" я считаю ложными. Они являются побочным эффектом неправильного ТЗ. Мне сложно себе представить как нормальный человек может взглядом охватить 5000 векторов целых чисел (или не дай бох 1 000 000 000 кластеров). Поэтому я акцентирую внимание на том что нас интересует не текстовые файлы. И даже не наполненные таблички MySQL. А информационная система, обладающая способностью быстро дать отклик на нужный лаконичный запрос от заказчика. Или на несколько типов запросов. Можно им получить одну или все дуплицированные подпоследовательности длиной 9, которые не являются частью более длинных? Если да, то уверую окончательно (хотя этот метод квадратичный по отношению к числу записей в исходной таблице, а брутфорс - линейный). Если вы хотите получить например все над-кластеры которые покрывают суб-кластер 5,6,7,8,9,10,11,12,13 (к примеру) - то отвечаю - ДА. Можно. Думаю что займет меньше секунды. Как и многие другие участники топика я думал об оптимизации и заложил такой расчет что хромосома длиной до 100 элементов у меня будет занимать не более 128 бит или 2х64 битных числа в формате long. Если вы смотрели в код то видели что ключом в хеш-таблице является BitSet. Это обобщенный вариант такой пары. Безразмерный. Код: java 1.
И дополняя свой ответ. Когда мы получим списки над-кластеров - то мы получим и сами хромосомы. Они являются value-s по отношению к ключам. Более раняя (неопубликованная) версия кода содержала работу над сырыми целыми числами (Long) (фрагмент) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Но я заметил что если заменить пару этих чисел на структуру BitSet почти ничего не теряю в performance - но приобретаю надежность и бесконечную масштабируемость по размеру вектора хромосомы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:29 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov Victor Ichalov,все дуплицированные подпоследовательности длиной 9, которые не являются частью более длинных? Т.е. 9 -ки не входят в 10 ки не входят в 11 и т.д.не немного не так. если есть совпадение из 10 чисел в 4 строках, то этих совпадений нет в девятках. т.е в каждой паре - максимальное совпадение ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:31 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, 5000 * 5000 / 2 = 12500000 сравнений Но в целом я согласен, что на этих размерах таблиц этот метод перспективнее брутфорса. Но ваш вопрос касается чего? Я на самом деле просто хочу понять, есть ли там такие последовательности (дуплицированные, длиной 9, не входящие в более длинные). В 22276737 вроде нет таких, самые короткие - 10. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:41 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Давайте я выложу полный отчот. Какая файловая шара вам доступна? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:48 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
вот поиск по like and like в 10 000 000 идёт 5 сек. а сравнение двух длинных чисел намного быстрее так в чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:50 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Давайте я выложу полный отчот. Какая файловая шара вам доступна? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:51 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
вадя, напиши лайк чтобы множества с дырками искать. т.е. чтобы в ЛАЙК %4% %5% %66% не попало 34 35 66 и 44 45 66 и т.д. единственное - держать числа в маске ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:55 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Все выкладываю. Берите. Пользуйтесь. Работает 1.5 секунды на моём железе. Это при том что JVM - холодная на таком старте. Это работающий и самодостаточный код. Нужна Java-11 и maven сборщик для сборки с сорцов. Бинарь я тоже приложу чтоб сразу запускать. интегрейшен теста так и нет, беру mitbase.txt, 66 записей с пятью попаданиями в отчете нет. перепроверяю файл Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 22:57 |
|
|
start [/forum/topic.php?fid=47&msg=40042941&tid=1828188]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 507ms |
0 / 0 |