![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Error202 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 5.11.2004 Где: Moscow Репутация: нет Всего: нет |
Есть 4 файла XML по 2Гб каждый...
На сервере 1Гб памяти... Чем и как можно обработать файл такого размера? |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Читать и парсить на лету, не сохраняя в памяти весь документ. Или перестать быть извращенцем и пользоваться базами данных.
|
|||
|
||||
Error202 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 5.11.2004 Где: Moscow Репутация: нет Всего: нет |
Да яб легко... с филиального сервера такие идут и сделать ничего нельзя...
|
|||
|
||||
bvn13 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 26.5.2009 Репутация: нет Всего: нет |
ну... я бы тогда порекомендовал 1с... |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
а как обработать?
хинт: rm -f * тоже обработка |
|||
|
||||
Error202 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 5.11.2004 Где: Moscow Репутация: нет Всего: нет |
Пропарсить...
Вроде как наладил через XML::Twig, но проблема... где-то косяк синтаксиса... :( Половина проходит и стопор... Можно как-то пропускать ошибки при парсинге? |
|||
|
||||
Turos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.2.2012 Где: Стамбул, Турция Репутация: нет Всего: -1 |
Считывать по кусочкам без хранения в памяти, составляя хеш "позиция узла" => "позиция байта в файле", и потом подчитывать данные по позиции
--------------------- германий металл Это сообщение отредактировал(а) Turos - 5.1.2020, 17:36 |
|||
|
||||
Pilat66 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 27.1.2009 Репутация: 1 Всего: 1 |
есть же два подхода к разбору XML - прочитать как огромную сруктуру в память, и читать постепенно, получая обратные вызовы на каждый элемент. Второй способ хоть терабайтные файлы пропарсит.
|
|||
|
||||
yazu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 14.9.2011 Репутация: нет Всего: нет |
Зависит для чего парсить? Любая нетривиальная обработка 2ГБ файла (не важно XML, нет) на 1Гб машине может легко привести к практически нерешаемой задаче - поиск дубликатов, к примеру.
А тривиальная - выборка чего-либо и суммирование, к примеру, вполне может быть выполнена регулярными выражениями. Очень хорошее введение об обработке нтмл (принципы одинаковы) есть в свободной книжке Perl & LWP. ЗЫ Книга была в свободном доступе с гаденьким замечанием, что мол, все равно на вшивых русских хакерских серверах висит, поэтому мол читайте у меня - конкретно сейчас сервер недоступен, так что надо искать на этих самых серверах ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |