|
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704
|
|
Работа с большими объёмами данных12.12.2019, 16:55. Показов 1384. Ответов 6
Метки нет (Все метки)
Имеется жд состав текстовых файлов, с которыми нужно сделать некоторые действия. В конечном итоге после обработки нужно всё перечитать и осуществить сквозную сортировку результирующих слов внутри всего этого в алфавитном порядке.
На данный момент у меня имеется функция, которая всё это перечитывает по абзацам, делает некоторые операции над словами и выдаёт результат обработки абзаца, отсортированный по возрастанию. Думаю это скидывать во временный файл, содержащий весь объём данных (цикл дозаписи в файл), вопрос в том, как потом это отсортировывать, какими средствами? Что делать, если даже объём отдельных файлов слишком большой, чтобы его неглядя пихать в оперативу? Не говоря уже о общем объёме. Вменяемые текстовые редакторы с такими файлами работают кусками, запрашивая у юзверя диапазон байт с которыми он хочет работать, но при необходимости они умеют сортировать содержимое таких файлов.
0
|
|
| 12.12.2019, 16:55 | |
|
Ответы с готовыми решениями:
6
Выполнение логических операций с большими объемами данных.
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 12.12.2019, 21:09 | ||
|
0
|
||
|
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704
|
||
| 13.12.2019, 00:53 [ТС] | ||
|
Об этом я уже и сам догадался, но я не вижу функцию, которая покажет мне максимальный непрерывный кусок оперативы для реализации подобного сортирования сортирования сортированием, дабы убить на это меньше времени шкрябания головками по блинам.
В комментах к заголовку sysinfoapi написано, что это мол только L1, значит есть и L2+? В нём нашёл только самую общую инфу и никаких деталей. Только сколько оперативы воткнуто, сколько используется и сколько ещё доступно, аналогичная фигня по файлу подкачки и виртуальной памяти. Добавлено через 3 часа 24 минуты Пока нашёл вот это:
Кто-нить скажет насколько это стрёмно? Это не совсем то, что я хотел. Насколько я понимаю данный метод чуть ли не наглухо забирает оперативу у системы и если др процессам в это время не хватит памяти - может вскочить вавка. %) Можно ли этим забрать скажем 90% свободной физической оперативы? И что может случиться при самом хреновом раскладе в этом случае?
0
|
||
|
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704
|
||
| 13.12.2019, 18:13 [ТС] | ||
|
Кто-нить может чё-нить сказать по поводу всего этого?
Если вычитать не какие-то там 10 байт, как в примере, а все 4096, то - число страниц на выходе остаётся то же, что и при вычитании 10, получается оно нифига не увеличивает в большую сторону объём памяти, как написано, чтоб всё влезло, а тупо урезает значение до целых страниц. Получается можно недополучить до 4095 байт при выделении если не пересчитывать значение нужной памяти перед запросом. Или я чего-то не понимаю? Добавлено через 14 минут Вин10 х64
0
|
||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||
| 13.12.2019, 20:06 | ||
|
Если позволяет место, можно пойти по файлам и составлять B-Tree в отдельных файлах. Результирующий B-Tree можно развернуть в отсортированный список.
1
|
||
|
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 704
|
||||||
| 13.12.2019, 23:03 [ТС] | ||||||
|
lemegeton, да, грубо говоря нужно получить словарь слов, использующихся во всех этих файлах.
По поводу писанины выше. Пытаюсь получить привилегию SE_INC_BASE_PRIORITY_NAME, в коде пока запрашиваю чё попроще, не суть, но в итоге под админом получаю такую шнягу на самом выходе после отработки LsaAddAccountRights
Смотрел и др метод, создавать файл в оперативе, оно может даже и прокатит, хотя не писал ещё код, но с таким раскладом мне придётся сначала записать этот файл на диск, найти в нём самое длинное слово и потом выровнять все слова по его длине, после чего уже сортировать, не слишком-то такой метод радует.
0
|
||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|
| 16.12.2019, 00:56 | |
|
Предлагаю предподготовку перед сортировкой.
Берем файлы на вход и читаем их построчно. На выходе файлы, в которых слова сгруппированы по первой букве. A.txt -- слова, начинающиеся с "А" B.txt -- слова, начинающиеся с "B" C.txt -- слова, начинающиеся с "C" и так далее. Потом пройтись по каждому файлу и если он слишком большой, разделить его на группы по второй букве. BA.txt -- слова, начинающиеся с "BA" BB.txt -- слова, начинающиеся с "BB" и так далее. Когда все файлы станут разумной длины, отсортировать их, сделав уникальными и собрать в один файл.
0
|
|
| 16.12.2019, 00:56 | |
|
Помогаю со студенческими работами здесь
7
Есть ли в Oracle механизмы работы с очень большими объемами данных ? Какое ограничение в C#.NET на размер массивов? Или что посоветуете для работы с большими объемами данных? Видеокарта для работы с большими объемами графики
Работа с большими массивами данных в текстовом файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|