|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
H5N1 mayton Все выкладываю. Берите. Пользуйтесь. Работает 1.5 секунды на моём железе. Это при том что JVM - холодная на таком старте. Это работающий и самодостаточный код. Нужна Java-11 и maven сборщик для сборки с сорцов. Бинарь я тоже приложу чтоб сразу запускать. интегрейшен теста так и нет, беру mitbase.txt, 66 записей с пятью попаданиями в отчете нет. перепроверяю файл Код: plaintext 1. 2. 3. 4. 5. 6.
Бери новый файл miltbase1.txt ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:01 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
H5N1, там кажись уже по данным mitbase1.txt ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:02 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Про инт-тесты я уже отвечал. Непонятно зачем два раза спрашивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:07 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Бери новый файл miltbase1.txt не возьму. я уже на miltbase.txt вижу, что салфетка не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:16 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
с 9-ками то же решение GROUP_CONCAT(t.id) strin xxx3332 3333 3334 3338 3 5 7 9 11 17 20 22 23 24 4макс 4 совпадения 10 комбинаций по 9 из набора 3 5 7 9 11 17 20 22 23 24 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:17 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
H5N1 mayton Бери новый файл miltbase1.txt не возьму. я уже на miltbase.txt вижу, что салфетка не работает. Как будет угодно. Я не настаиваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:24 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
вход Код: plaintext 1. 2. 3. 4. 5.
выход Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
нет ни clusterDimenstions : 11 ни clusterDimenstions : 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:35 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
8-ки - после первого захода поиска совпадений >=8 в таблице 954,203 строк 8-ки - добавляются кобинации с 4 совпадающими строкамиGROUP_CONCAT(t.id) strin xxx1037 3902 1 1267 13 14 29 38 42 44 51 63 44806 972 1977 18 13 14 35 40 48 59 65 73 43423 3331 4867 164 2 27 35 53 60 63 67 78 44401 4934 1699 298 2 3 11 34 36 50 56 79 4950 3673 3549 2876 2 7 16 23 27 47 53 55 44060 1250 3452 4898 23 31 41 42 48 53 54 55 41436 734 1790 1673 3 5 34 38 44 47 48 55 43332 3333 3334 3338 3 5 7 9 11 17 20 22 23 24 42114 3338 4941 3332 3 7 11 20 22 38 46 52 4267 442 1024 3587 4 5 21 22 26 34 43 54 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:41 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
H5N1 нет ни clusterDimenstions : 11 ни clusterDimenstions : 10 И что? Разве это ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2021, 23:45 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Все прочие цели - такие как выдать на экран "ВСЁ" я считаю ложными. Ну я посмотрел в код в меру своих знаний java (11 у меня под рукой нет чтобы запустить), всё действительно очень похоже на правду. Я почему-то имел предубеждение, что там должна быть какая-то ML библиотека, а не вложенные циклы. Скорость впечатляет, но она наверное ухудшится, если уменьшить if (cnt >= 10) { . А так, оно не должно пропускать как при градиентном спуске, т.е. выдаст именно "ВСЁ". Давайте я выложу полный отчот. Ну я нашёл уже искомое: Код: sql 1. 2. 3. 4. 5. 6. 7.
Я думаю оно будет в отчёте если сделать if (cnt >= 9) { . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 00:18 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
7-ки - после первого захода поиска совпадений >=7 в таблице 2,432,768 строк 7-чисельные пересечения - появились 5 строк вхожденияStroki strIn XXX204 275 2739 4259 2311 2 26 36 37 52 69 79 52986 2813 2049 4169 829 6 13 24 28 32 34 54 53677 2194 1947 1779 4467 12 15 18 33 46 47 58 54298 4555 1803 1874 2029 6 9 10 24 28 36 64 5620 3332 3338 4499 3002 7 22 23 24 38 50 52 5827 1291 3545 2777 2748 16 23 28 31 47 48 65 5844 4434 4514 4079 4165 7 24 30 41 49 78 79 5 примерный тайминг формирования попарной таблицы пересечения множества чисел (во загнул, аж самому понравилось) >=10 чисел 2мин /66тыс строк >=9 чисел 4мин /288тыс =8 8мин / 1млн =7 18 мин / 2.4 млн строк ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 00:23 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Но я тебе разработал софт. Он работает. Работает быстро. А ты - даже проигнорировал проверить результат? Не ты первый, не ты последний. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 05:14 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg Что-ж мне так не везёт, блин. Везение - не нужно. Нужно работать головой и делать руками. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 05:21 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg Пошёл 2 месяц "простенького задания". Но у меня есть хоть долгие, но решения. Если бы некоторые сделали нормальное ТЗ и тестовые примеры, то уже получили бы работающее решение. Никто не может ничего сделать, потому что не может до конца понять, а что именно, собственно надо сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 05:24 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton Но это-же глупо правда? Дело даже не в том что миллиард поместистя или нет. А будет ли эта структура полезна для поиска или избыточна. Нет. Надо миллиард. Так заказчик сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 05:26 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
miltorg Как это всё переписать на mySQL? Не нужно. Еще раз, а то может не понятно. НЕ_НУЖНО Всё решается в памяти. Помоожете? Пожалуйста. https://jsfiddle.net/0kemgyhv/ Проверь выхлоп, пожалуйста и сделай вменяемое ТЗ. А то на заказчиков ты говорил, что не понятно что хотят, а сам не лучше. Исходные Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Выхлоп dates seq cnt1.08.1966;21.08.1966;22.08.19665 7 8 15 22 23 27 34 37 3961.08.1966;21.08.19667 8 15 22 23 27 34 37 39 4421.08.1966;21.08.19668 15 22 23 27 34 37 39 40 4421.08.1966;21.08.19667 15 22 23 27 34 37 39 40 4421.08.1966;21.08.19667 8 22 23 27 34 37 39 40 4421.08.1966;21.08.19667 8 15 23 27 34 37 39 40 4421.08.1966;21.08.19667 8 15 22 27 34 37 39 40 4421.08.1966;21.08.19667 8 15 22 23 34 37 39 40 4421.08.1966;21.08.19667 8 15 22 23 27 37 39 40 4421.08.1966;21.08.19667 8 15 22 23 27 34 39 40 4421.08.1966;21.08.19667 8 15 22 23 27 34 37 40 4421.08.1966;21.08.19665 8 15 22 23 27 34 37 39 4421.08.1966;21.08.19665 15 22 23 27 34 37 39 40 4421.08.1966;21.08.19665 8 22 23 27 34 37 39 40 4421.08.1966;21.08.19665 8 15 23 27 34 37 39 40 4421.08.1966;21.08.19665 8 15 22 27 34 37 39 40 4421.08.1966;21.08.19665 8 15 22 23 34 37 39 40 4421.08.1966;21.08.19665 8 15 22 23 27 37 39 40 4421.08.1966;21.08.19665 8 15 22 23 27 34 39 40 4421.08.1966;21.08.19665 8 15 22 23 27 34 37 40 4421.08.1966;21.08.19665 7 15 22 23 27 34 37 39 4421.08.1966;21.08.19665 7 22 23 27 34 37 39 40 4421.08.1966;21.08.19665 7 15 23 27 34 37 39 40 4421.08.1966;21.08.19665 7 15 22 27 34 37 39 40 4421.08.1966;21.08.19665 7 15 22 23 34 37 39 40 4421.08.1966;21.08.19665 7 15 22 23 27 37 39 40 4421.08.1966;21.08.19665 7 15 22 23 27 34 39 40 4421.08.1966;21.08.19665 7 15 22 23 27 34 37 40 4421.08.1966;21.08.19665 7 8 22 23 27 34 37 39 4421.08.1966;21.08.19665 7 8 23 27 34 37 39 40 4421.08.1966;21.08.19665 7 8 22 27 34 37 39 40 4421.08.1966;21.08.19665 7 8 22 23 34 37 39 40 4421.08.1966;21.08.19665 7 8 22 23 27 37 39 40 4421.08.1966;21.08.19665 7 8 22 23 27 34 39 40 4421.08.1966;21.08.19665 7 8 22 23 27 34 37 40 4421.08.1966;21.08.19665 7 8 15 23 27 34 37 39 4421.08.1966;21.08.19665 7 8 15 27 34 37 39 40 4421.08.1966;21.08.19665 7 8 15 23 34 37 39 40 4421.08.1966;21.08.19665 7 8 15 23 27 37 39 40 4421.08.1966;21.08.19665 7 8 15 23 27 34 39 40 4421.08.1966;21.08.19665 7 8 15 23 27 34 37 40 4421.08.1966;21.08.19665 7 8 15 22 27 34 37 39 4421.08.1966;21.08.19665 7 8 15 22 34 37 39 40 4421.08.1966;21.08.19665 7 8 15 22 27 37 39 40 4421.08.1966;21.08.19665 7 8 15 22 27 34 39 40 4421.08.1966;21.08.19665 7 8 15 22 27 34 37 40 4421.08.1966;21.08.19665 7 8 15 22 23 34 37 39 4421.08.1966;21.08.19665 7 8 15 22 23 37 39 40 4421.08.1966;21.08.19665 7 8 15 22 23 34 39 40 4421.08.1966;21.08.19665 7 8 15 22 23 34 37 40 4421.08.1966;21.08.19665 7 8 15 22 23 27 37 39 4421.08.1966;21.08.19665 7 8 15 22 23 27 39 40 4421.08.1966;21.08.19665 7 8 15 22 23 27 37 40 4421.08.1966;21.08.19665 7 8 15 22 23 27 34 39 4421.08.1966;21.08.19665 7 8 15 22 23 27 34 40 4421.08.1966;21.08.19665 7 8 15 22 23 27 34 37 4421.08.1966;22.08.1966;21.08.19667 8 15 22 23 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 8 15 22 23 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 15 22 23 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 22 23 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 23 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 22 27 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 22 23 34 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 22 23 27 37 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 22 23 27 34 39 4041.08.1966;22.08.1966;21.08.19665 7 8 15 22 23 27 34 37 4043.08.1966;5.08.19662 12 21 28 36 50 53 55 59 6623.08.1966;14.08.19663 5 24 26 28 50 53 55 59 6623.08.1966;16.08.19662 3 5 15 23 28 37 38 50 5323.08.1966;16.08.19663 5 15 23 28 37 38 50 53 5923.08.1966;16.08.19662 5 15 23 28 37 38 50 53 5923.08.1966;16.08.19662 3 15 23 28 37 38 50 53 5923.08.1966;16.08.19662 3 5 23 28 37 38 50 53 5923.08.1966;16.08.19662 3 5 15 28 37 38 50 53 5923.08.1966;16.08.19662 3 5 15 23 37 38 50 53 5923.08.1966;16.08.19662 3 5 15 23 28 38 50 53 5923.08.1966;16.08.19662 3 5 15 23 28 37 50 53 5923.08.1966;16.08.19662 3 5 15 23 28 37 38 53 5923.08.1966;16.08.19662 3 5 15 23 28 37 38 50 5926.08.1966;18.08.196611 15 16 29 32 35 42 43 62 6327.08.1966;9.08.19667 8 21 27 30 49 50 53 54 68210.08.1966;21.08.19665 7 23 27 34 45 46 47 52 64212.08.1966;21.08.196623 27 40 44 45 46 47 52 64 66213.08.1966;17.08.19661 5 11 16 20 22 25 26 47 56213.08.1966;17.08.19665 11 16 20 22 25 26 47 56 70213.08.1966;17.08.19661 11 16 20 22 25 26 47 56 70213.08.1966;17.08.19661 5 16 20 22 25 26 47 56 70213.08.1966;17.08.19661 5 11 20 22 25 26 47 56 70213.08.1966;17.08.19661 5 11 16 22 25 26 47 56 70213.08.1966;17.08.19661 5 11 16 20 25 26 47 56 70213.08.1966;17.08.19661 5 11 16 20 22 26 47 56 70213.08.1966;17.08.19661 5 11 16 20 22 25 47 56 70213.08.1966;17.08.19661 5 11 16 20 22 25 26 56 70213.08.1966;17.08.19661 5 11 16 20 22 25 26 47 70219.08.1966;20.08.19668 15 17 26 35 37 42 44 50 692 Еще раз говорю, cnt - не знаю, что такое, я сделал пары записей. Совпадения по 10 хардкод, везде хардкод, надо проверить комбинатор и сделать запись в файл, а оттуда можешь засунуть куда захочешь. Ошибки могут быть не существенные. Я тебе еще тогда говорил, проверяй выхлоп, но нет, не хочу, хочу еще 2 недели с mysql хернёй страдать. Сделал, чтобы тебе ничего не надо было разворачивать. Тупо ссылка на jsfiddle выше. Просто нажми это. Еще одна на всякий случай ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 07:33 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
доброе утро в Доме-2 6-ки записей после поиска пар пересечения 6 чисел в множествах COUNT(*) 4,864,490 6-чисельные пересечения - появились 7 строк вхождения1353 3241 1731 3634 3700 3598 2405 9 24 38 63 65 66 74547 2906 1659 1430 1950 1148 505 4 8 10 37 54 67 7 тайминг 8часов 30 мин!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:22 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
6-рки и выше. Тоже приблизительно 4 миллиона. Алгоритм работал 1 минуту. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:32 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, Выше вы писали что у вас нет решения, а есть направления и показ пути и пр. И я не стал вообще смотреть на ваши коды. Так у вас есть решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:36 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Моё решение - не в том виде в котором ты хотел. Но зрячий увидит в нём алмаз. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:42 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
mayton, Ок. Тогда обязательно посмотрю. - Как будет время на драгоценности. Мне сейчас решение надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:52 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Как будет угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:03 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
innodb_buffer... = 3G 8час. вот над этим и надо думать, если делать в MySQL, что ждет в ближайшем будущем так как в течении месяца добавятся 30 записей и т.д. все опять начнет тормозить постоянным увеличением памяти не отделаешься. таблица V=1,4G на диске 1,9G Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
наполнение пару строк id1 id2 strin bin10 ХХХ1 11 14 17 21 26 29 32 34 42 76 здесь строка из 01 длиной 100 91 25 13 15 17 29 31 32 34 38 51 60 76 здесь строка из 01 длиной 100 11 запрос простой влоб Код: sql 1. 2. 3. 4. 5. 6. 7.
имхо, вот на этом этапе надо пробовать сбросить подзапросы в табл MEMORY ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:23 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
это решение для победителей лотереи "6 из 20" , если кто пропутил выиграло 14 билетов (по 7 билетов в 2ух комбинациях) утешительный приз 1 евро/час, запрос работал 8 часов, значит выигрыш 8 евро/час 6-чисельные пересечения - появились 7 строк вхождения1353 3241 1731 3634 3700 3598 2405 9 24 38 63 65 66 74547 2906 1659 1430 1950 1148 505 4 8 10 37 54 67 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:33 |
|
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
|
|||
---|---|---|---|
#18+
Alex_Ustinov вот на этом этапе надо пробовать сбросить подзапросы в табл MEMORY Можно просто сразу сбросить всё в MEMORY не приплетая сюда mysql. На том же пёрле есть словари. Просто берешь и наполняешь словарь, пока пёрл не крякнет. Потом переписываешь на что-то, что не так жрёт память. Зачем вы вообще вцепились зубами в бд? На текущем этапе она не нужна вообще. Необходимость появится, когда там будет больше 50-100к исходных записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:33 |
|
|
start [/forum/topic.php?fid=47&msg=40042967&tid=1828188]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 286ms |
0 / 0 |