Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
ИзопропилmaytonЭто не главная задача в топике это подзадача. хотя дубли можно ликвидировать непосредственно в процессе сортировки. А чуть раньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:35 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, не хочется иметь зависимость от количесва дублей и размеров строк. а ожидаемое количество дублей и их распределение может серьёзно влиять на скорость обработки. вплоть до невозможности в некоторых случаях выполнить залачу потому я и сторонник кувалды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:57 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
А при чем здесь размер строк? Я ввел искусственное ограничение в 64К строки просто чтобы вынести за рамки топика дискуссии на тему 4G строк и т.п. безсмыслицы. Кстати предлагаю подумать. Постановка СОРТИРОВКИ требует интерфейса СРАВНЕНИЯ. Это реализация (и использование в коде) предикатов БОЛЬШЕ (">"), МЕНЬШЕ("<"), РАВНО("="). В то время как задача унификации в чистом виде лишь спрашивает нас о том равны строки или нет ("=") в декартовом произведении файла с самим собой. Как вам такой реверанс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 23:26 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonА при чем здесь размер строк? чем больше длина - тем легче жить maytonПостановка СОРТИРОВКИ требует интерфейса СРАВНЕНИЯ. имею возможность на множестве строк задать полный порядок. веселее было бы если бы мы работали на множестве, где нельзя задать полный порядок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 23:59 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonсортировка будет эффективно решать мою задачу?Сортировка чего, строк или их хешей? 1n. Читаем большой файл и пишем, например, в 256 временных [ хеш строки(8b) + её адрес в большом файле(6b) + длину(2b) ] 2a. Читаем все записи из временного в память, сортируем по хешу. (Если мало памяти, повторяем пункт 1n и для временного файла) 2b. Проверяем те, что с одинаковым хешем на коллизию-копию, дубликаты игнорим. 2c. Для каждой из обработанных записей, читаем в большом файле строку по адресу и переписываем в результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 03:33 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Bred eFeM, хорошо. Go-go в имплементацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 08:14 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
В продолжение темы хешей. Несколько мыслей. Ложить в хеш-таблицу хеши - масло маслянное получается. Если мы берем от произвольной строки CRC32 то фактически классифицируем строки на 4 млрд классов. Для MD5 - соотв на 2^128 классов. Уж если мы пошли по порочному пути хеширования (сворачивания) строк в более ограниченное множество - то нам и хеш-табличка-то не нужна. Для CRC32 мы можем аллоцировать массив из 2^32 бит = 512 Mb и фиксировать факт попадания строки в нужный класс. Для MD5 соотв у нас есть больше поле для растягивания разрядной сетки (и все разряды одинаково хорошо шумят) и мы можем жонглировать размером биткарты получая все более точные и точные классификации наших строк. Еще открытый вопрос. Сколько памяти считать доступной? Тут мне интересно как в Windows/Linux проверить сколько мы можем аллоцировать без опасения создать Page Faults? Знатоки Windows/Linux страничной памяти. Поделитесь опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 08:33 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Изопропилmayton, тестовые данные - приготовил? По поводу данных. Я вопрос не забыл. Я помню. В качестве исходных я сейчас ищу базы Ripe.Db (DNS), email/IP blacklists а также различные словари и справочники которые у меня были на внешних HDD. Но поскольку их сложно шарить (толстые файлы) то я буду их также искать на публичном доступе. По крайней мере Ripe.Db я качал свободно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 08:45 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Посадил репку https://sourceforge.net/p/sql-ru-uniq/code/HEAD/tree/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 11:59 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonГлавное - сделать уникальность. В том топике ты отличный алгоритм предложил: первый проход разложить по корзинам/файлам по маске хэша, второй проход каждую корзину привести к уникальности, третий - склеить обратно. ИМХО лучше не придумаешь. Осталось только подобрать алгоритм деления на корзины чтобы на втором шаге памяти хватало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 20:15 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Dima T, я не отказываюсь от него. Просто хочу оценить какие еще есть возможности. И послушать что скажут мемберы. Алгоритм сердитого Зямы тоже имеет право на жизнь только его надо описать в части фазы №2 и решить вопрос с коллизиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 20:50 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Тестовые данные: https://ftp.ripe.net/ripe/dbase/ripe.db.gz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 22:09 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton Еще открытый вопрос. Сколько памяти считать доступной? Тут мне интересно как в Windows/Linux проверить сколько мы можем аллоцировать без опасения создать Page Faults? Знатоки Windows/Linux страничной памяти. Поделитесь опытом. Swappiness Но линуксоиды не будут терять время ради экономии на спичках, они используют имеющуюся утилиту sort ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 23:03 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
д0кХmayton Еще открытый вопрос. Сколько памяти считать доступной? Тут мне интересно как в Windows/Linux проверить сколько мы можем аллоцировать без опасения создать Page Faults? Знатоки Windows/Linux страничной памяти. Поделитесь опытом. Swappiness Но линуксоиды не будут терять время ради экономии на спичках, они используют имеющуюся утилиту sort Спасибо Док за ссылки. По поводу sort. Мы не ищем легких путей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 23:42 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Попробуй отсортировать 5 гигабайтный ripe.db ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 00:06 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonПопробуй отсортировать 5 гигабайтный ripe.db Это мне вопрос ? Не вопрос, 5 Gb ни о чем :) Если нужно будет по работе я найду способ дорисовать на лету( без рестарта ОС ) в сервер 8..16..32..64 Gb RAM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 14:30 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Ты бы качнул и глянул в содержимое файла. :) Он -- как пенопласт внутри. Состоит из пустот и повторов. А ты бы ради пенопласта поднимал амазонское облако... Хехе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 14:37 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonТы бы качнул и глянул в содержимое файла. :) Он -- как пенопласт внутри. Состоит из пустот и повторов. А ты бы ради пенопласта поднимал амазонское облако... Хехе офтопик У нас есть свое :) Поменьше амазоновского , но с аналогичным функционалом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 15:01 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Качнул, заглянул, там полфайла авторremarks: **************************** remarks: * THIS OBJECT IS MODIFIED remarks: * Please note that all data that is generally regarded as personal remarks: * data has been removed from this object. remarks: * To view the original object, please query the RIPE Database at: remarks: * http://www.ripe.net/whois remarks: **************************** И еще много чего повторяется. sort виндовса отказался сортировать: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 15:02 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
затестил с хэш-таблицей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Результат: Код: plaintext В x86 память закончилась примерно на 83 млн. записей, в x64 потребовалось 3.9 Гб. Как-то не очень эффективно: почти 4 Гб на 1 Гб полезной инфы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 16:30 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 17:03 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Спасибо дима. Чуть позже я подкину ещё пару файлов. По cddb и по анти-спам спискам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 17:03 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Я щас с планшета пишу. Кто-нить может позаменять переводы строк на нормальные и поднять windows sort утилиту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 17:15 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
У меня есть мысль про биткарту и я ее думаю А если сделать биткарту по CRC32? Это всего 0.5 Гб, скидывать первое найденное уникальное CRC в результат. В итоге получим в один проход набор уникальных строк, но не все, т.к. будут такие у которых CRC совпало с ранее найденными, как-то их отловить вторым проходом надо. PS Siemargl, 20770457 ничего не понял, можно подробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2017, 17:34 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39514666&tid=2018073]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 556ms |

| 0 / 0 |
