| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Чтение больших файлов |
| Автор: foxmalder 13.10.2012, 23:38 |
| Добрые люди помогите пожалуйста советами) задача такая: например, есть несколько файлов объемом 4-6 гб текстовых. их надо очистить от дубликатов слов и отсортировать. подскажите как максимально использовать оперативную память для этого |
| Автор: Dem_max 14.10.2012, 13:52 |
| Читаешь блоками по XXX мегабайт, удаляешь из блоков памяти лишнее и пишешь обратно в новый файл. |
| Автор: math64 15.10.2012, 07:16 |
| Читаешь блоками (рамеры блока не фиксированы, границы - по границам слов), каждый блок сортируешь, очищаешь от повторений, записываешь во временный файл. Затем сортировка слиянием (с одновременным удалением дубликатов), удаление временных файлов. ЗЫ: если все слова (по одному) влезают в память - читаешь последовательно и формируешь отсортированный список слов. |
| Автор: Silent 15.10.2012, 08:34 |
| http://ru.wikipedia.org/wiki/MapReduce тебе в помощь |
| Автор: Zhunko 31.10.2012, 01:45 |
| Ещё, в качестве инструмента, mapping можно порекомендовать. Можно работать с файлом, как будто он весь в памяти. Двигаешь окно проекции по файлу и читаешь, что надо. |