Древние грабли
Древнее золото, говоришь?
А у меня сразу возник вопрос. Если обработка XML требовала затянуть в память все, и там разбирать («проблема была в сильной связанности») — то почему загрузка в CSV этого же не требовала?
Видимо, связность была не такая уж сильная. А для парсинга использовался не потоковый парсер, а пример с третьей страницы учебника.
Я вот совсем недавно исправлял проблему — нельзя было загружать XML'и больше определенного размера. Памяти не хватало. Оказалось, там парсер грузит всю структуру в память целиком и только потом обрабатывает. Заменил на потоковый. Потребление памяти константное, скорость работы возросла.
А обмен через файлы — это большая коллекция граблей с автоподзаводом. Возможно, уже пришла пора открыть для себя что-нибудь более новое?
А у меня сразу возник вопрос. Если обработка XML требовала затянуть в память все, и там разбирать («проблема была в сильной связанности») — то почему загрузка в CSV этого же не требовала?
Видимо, связность была не такая уж сильная. А для парсинга использовался не потоковый парсер, а пример с третьей страницы учебника.
Я вот совсем недавно исправлял проблему — нельзя было загружать XML'и больше определенного размера. Памяти не хватало. Оказалось, там парсер грузит всю структуру в память целиком и только потом обрабатывает. Заменил на потоковый. Потребление памяти константное, скорость работы возросла.
А обмен через файлы — это большая коллекция граблей с автоподзаводом. Возможно, уже пришла пора открыть для себя что-нибудь более новое?