|
|
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
kirill_a, сильно удивишся но любая операционка содержит встроенный сортировщик текстовых файлов. В винде. Код: java 1. 2. 3. 4. В Linux формат команд будет другой но суть - та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 11:17 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
maytonkirill_a, сильно удивишся но любая операционка содержит встроенный сортировщик текстовых файлов. В винде. Код: java 1. 2. 3. 4. В Linux формат команд будет другой но суть - та же. Я это знаю, но время работы встроенного сортировщика не устраивает, он раз в 5 медленнее (в винде померял). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 12:54 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Вроде же указали уже, что сортированные файлы просто сравниваются в один проход построчным сравнением на больше-меньше. Какой в таком случае смысл терять сортировку, перекладывая данные в БД или HashMap? Если бы сортировки не было, то хэш-таблица - видимо, самый быстрый способ решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 14:17 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
yuglВроде же указали уже, что сортированные файлы просто сравниваются в один проход построчным сравнением на больше-меньше. Какой в таком случае смысл терять сортировку, перекладывая данные в БД или HashMap? Если бы сортировки не было, то хэш-таблица - видимо, самый быстрый способ решения. Не видел сравнения в один проход. Пример: file1.txt : строка1 строка2 строка3 ... file2.txt строка1 строка1.1 строка1.2 ...добавилось сотпитсотмиллионов строк строка1.1000000000000000 строка3 как итог - OutOfMemory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 15:48 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
kirill_aНе видел сравнения в один проход. 17533307 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2015, 15:10 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovkirill_aНе видел сравнения в один проход. 17533307 Да, что-то я протупил. Спасибо большое! То, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2015, 07:24 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
maytonkirill_a, сильно удивишся но любая операционка содержит встроенный сортировщик текстовых файлов. В винде. Код: java 1. 2. 3. 4. В Linux формат команд будет другой но суть - та же.Встроенные сортировщики сосут у Java Доказано в обсуждении сортировки гигабайтной таблицы паспортов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 11:45 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Kenny Fartman, ты имеешь в виду это сообщение? На самом деле все эти утили безбожно устарели. Например sort. Казалось бы - написано бородатым прогером 30 лет назад, на ansi C. Значит всяко быстрее всех! А на практике, скармливаешь ему гигабайтный файл (недействительные паспорта РФ, 100млн строк) и оно умирает на час с потреблением ОЗУ 8ГБ. В то время как прога на java делает то же самое за 40 секунд и потреблением 4ГБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 12:55 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
maytonKenny Fartman, ты имеешь в виду это сообщение?ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 17:48 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Вот тезис Код: sql 1. Я считаю что здесь скрытые манипуляции темой. Что за прога? Как она написана? Какие ограничения на исходные данные? (Напоминаю в скобках что Java ограничивает строку длиной в 2Г.) Означает ли это что прогу можно использовать и на 16 Гб и на 32 Гб ных файлах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 19:30 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
mayton, как то баловался на работе со студией. на дотнете делал анализ текстового файла ( количество слов, количество вхождений, сколько раз встречается, самое длинное слов ( без лекси. анализа) накидал войнов и миров до двух гигов, разбил на части ( самое оптимальное получилось 5 или шесть потоков) зf один проход as -sax не помню... секунд вроде 20цать заняло.... забавы ради. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 20:20 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, чел. Это очень любопытный факт но я не вижу связи с обсуждаемой проблемой. А именно - с сортировкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 22:32 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Сделать элементарно за один проход по файлам без всяких хешей. Смотрите алгоритмы операций над сортированными множествами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 02:51 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
iPOJOСделать элементарно за один проход по файлам без всяких хешей. Смотрите алгоритмы операций над сортированными множествами. если это элементарно то КО подсказывает что ненужно никуда смотреть а воспользоваться обыкновенной юникс утилитой sort и все будет хорошо. а если хорошо не будет то вряд просмотры алгоритмов помогут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 10:39 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
llemingесли это элементарно то КО подсказывает что ненужно никуда смотреть а воспользоваться обыкновенной юникс утилитой sort и все будет хорошо. Для начала следует хотя бы посмотреть на вопрос топика. Утилита sort слаба в плане сравнения файлов. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 11:11 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньевllemingесли это элементарно то КО подсказывает что ненужно никуда смотреть а воспользоваться обыкновенной юникс утилитой sort и все будет хорошо. Для начала следует хотя бы посмотреть на вопрос топика. Утилита sort слаба в плане сравнения файлов. :) Kenny Fartman Встроенные сортировщики сосут у Java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 11:42 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
lleming, iPOJO это не Kenny Fartman И он отвечал, поди, на первый вопрос первой страницы. Про то, что sort сливает java он еще и не вкурил. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 11:44 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
там даже дают ссылку на исходный файл на котором они сравнивают утилиту GNU с java и там 2 подзадачи обсуждают, тупо сортировку и выделение diff-а с изменениями за последнюю неделю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 13:12 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Ну ОК. Я на самом деле вовсе не против сабжа. Я просто акцентирую внимание на том что задача полна ограничений. И не стоит бросаться громкими прокламациями на тему того что грузовик лучше гоночного болида. Можно влететь в исключительные случаи которые отменят результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 17:17 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
maytonНу ОК. Я на самом деле вовсе не против сабжа. Я просто акцентирую внимание на том что задача полна ограничений. И не стоит бросаться громкими прокламациями на тему того что грузовик лучше гоночного болидаmaytonkirill_a, сильно удивишся но любая операционка содержит встроенный сортировщик текстовых файлов. В винде В Linux формат команд будет другой но суть - та же.А я к тому что гигабайтные файлы сортировать-вычитать встроенными в ОС утилитами на сегодняшний день кажется нет смысла. Эти утилиты тоже были рассчитаны на компы с 32-256Мб оперативки и файлы 5-10. При увеличившемся на 2 порядка объемах RAM и на 2 порядка размерах исходных файлов уже стоит пользоваться самописками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 17:38 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Kenny FartmanВ Linux формат команд будет другой но суть - та же.А я к тому что гигабайтные файлы сортировать-вычитать встроенными в ОС утилитами на сегодняшний день кажется нет смысла. Эти утилиты тоже были рассчитаны на компы с 32-256Мб оперативки и файлы 5-10. При увеличившемся на 2 порядка объемах RAM и на 2 порядка размерах исходных файлов уже стоит пользоваться самописками[/quot] Надо посмотреть issues tracker по поводу sort. Я думаю что такие реквесты давно существовали. Просто их никто не хотел делать за ненадобностью. Но ситуация осложняется тем что существует как минимум несколько штук КАНОНИЧНЫХ Unix-ов и каждый из них ведет свою политику целесообразности improovemens. Кому-то такое улучшение покажется полезным. А кто-то отклонит. И по своему будет прав. Сортировка толстых текстовиков - нетипичная задача и ее надо решать через БД. Ну а я-бы предложил сортировку Хоара + merge в /tmp. В две фазы. Так я лет 10 назад сортировал XML-файлы на Win2003 с ограниченным набором memory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 18:06 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
YamahaR1Код: Код: java 1. 2. 3. 4. 5. Конечно у меня вроде как получается 200 млн объектов строк создается из-за ("String" + i), возможно в этом проблема... А вы сколько записей инсертили? Разве JVM может упасть по heap из за мусора? По идее должен тормозить GC, но не падать Думаю, что файлы делить не обязательно, просто результат надо на диск сбрасывать периодически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 23:32 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Mad_HeadРазве JVM может упасть по heap из за мусора? По идее должен тормозить GC, но не падать Ну если предположить, что если на хранение ста миллионов строк по 80 байт нужно около 8G, а на все про все отводилось только 6 (это мы еще всякие обертки от Map не считали) то вопрос не только в мусоре. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 08:20 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
Kenny FartmanА я к тому что гигабайтные файлы сортировать-вычитать встроенными в ОС утилитами на сегодняшний день кажется нет смысла. Эти утилиты тоже были рассчитаны на компы с 32-256Мб оперативки и файлы 5-10. При увеличившемся на 2 порядка объемах RAM и на 2 порядка размерах исходных файлов уже стоит пользоваться самописками 32-256Мб тут уже разброс практически на порядок. Получается что утилита под 32Мб не будет так же эффективна как на рядом стоящей машине с 256Мb. Не пересобирать же sort для каждой новой машины. Добавил памяти пересобирай все. Тут само собой напрашивается вычислить доступную память и воспользоваться ей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 10:10 |
|
||
|
Сравнение двух больших отсортированных файлов
|
|||
|---|---|---|---|
|
#18+
maytonНу а я-бы предложил сортировку Хоара + merge в /tmp. В две фазы. Так я лет 10 назад сортировал XML-файлы на Win2003 с ограниченным набором memory. Практически попал только алгоритм External R-Way merge http://vkundeti.blogspot.ru/2008/03/tech-algorithmic-details-of-unix-sort.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39292460&tid=2123804]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 406ms |

| 0 / 0 |
