Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2018, 22:48   #1
Chaser_81
Пользователь
 
Регистрация: 09.04.2007
Сообщений: 37
Лампочка Парсер XML на Java / C++

Есть задача написать парсер XML-файла с товарами для интернет-магазина + заносить товары в БД сайта. Сам XML файл с товарами весит 250 Мб, есть и файлы по 500 Мб.

Сейчас работает парсер на PHP, однако парсинг + загрузка картинок на сервер (загружаются на сервер по внешним ссылкам) занимает порядка 12 часов, если парсить XML без картинок – 6.

Хотелось бы ускорить процесс в разы и запускать импорт из XML по крону, соответственно я так понимаю, что на Java или C++ это будет быстрее в разы, чем сейчас на PHP.

Жду ваших предложений реализации, цене и срокам.
SiteAnalyzer - анализ и аудит сайта. Telegram: @majento
Chaser_81 вне форума Ответить с цитированием
Старый 08.06.2018, 00:41   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Напишите подробнее на black.fregat@gmail.com
Black Fregat вне форума Ответить с цитированием
Старый 08.06.2018, 03:12   #3
Julik2
Пользователь
 
Регистрация: 06.06.2018
Сообщений: 25
По умолчанию

А не проще ли поставщика XML послать на NULL?
Во-первых, описание позиций практичнее создавать в виде текста.
Во-вторых, рациональнее делать: одна позиция - один файл. И конечно же никаких картинок в XML и тем более в БД.

Очевидно, не стоит и PHP использовать для парсинга таких слонов. Попробуйте XMLstarlet.
(O|O)
Julik2 вне форума Ответить с цитированием
Старый 08.06.2018, 08:50   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Цитата:
Сообщение от Julik2 Посмотреть сообщение
И конечно же никаких картинок в XML и тем более в БД.
- А что такого-то? Картинка в БД - это нормально. БД просто большая у него. Картинка - BLOB, отдельным файлом конечно же.
Cuprum5 вне форума Ответить с цитированием
Старый 08.06.2018, 09:41   #5
Chaser_81
Пользователь
 
Регистрация: 09.04.2007
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Julik2 Посмотреть сообщение
А не проще ли поставщика XML послать на NULL?
Во-первых, описание позиций практичнее создавать в виде текста.
Во-вторых, рациональнее делать: одна позиция - один файл. И конечно же никаких картинок в XML и тем более в БД.

Очевидно, не стоит и PHP использовать для парсинга таких слонов. Попробуйте XMLstarlet.
В XML ссылки на картинки на внешнем ресурсе. Их нужно качать отдельно
SiteAnalyzer - анализ и аудит сайта. Telegram: @majento
Chaser_81 вне форума Ответить с цитированием
Старый 08.06.2018, 09:42   #6
Chaser_81
Пользователь
 
Регистрация: 09.04.2007
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
- А что такого-то? Картинка в БД - это нормально. БД просто большая у него. Картинка - BLOB, отдельным файлом конечно же.
Не ну сами картинки просто копируются на сервер конечно же. В БД только данные по товарам
SiteAnalyzer - анализ и аудит сайта. Telegram: @majento
Chaser_81 вне форума Ответить с цитированием
Старый 08.06.2018, 10:58   #7
sauwork
Пользователь
 
Аватар для sauwork
 
Регистрация: 02.01.2015
Сообщений: 12
По умолчанию

Смена php на другой язык не поможет в плане ощутимого преимущества обработки xml - доли секунд , проблема скорее всего с алгоритмом в целом , возможно с кол-вом данных в самой БД и поиске среди них.
Да и выгрузка данных с внешних ресурсов само собой тормозит процесс.
почта: sauwork@yandex.ru , телега: @sauwork

Последний раз редактировалось sauwork; 08.06.2018 в 11:01.
sauwork вне форума Ответить с цитированием
Старый 08.06.2018, 13:35   #8
Chaser_81
Пользователь
 
Регистрация: 09.04.2007
Сообщений: 37
По умолчанию

Цитата:
Сообщение от sauwork Посмотреть сообщение
Смена php на другой язык не поможет в плане ощутимого преимущества обработки xml - доли секунд , проблема скорее всего с алгоритмом в целом , возможно с кол-вом данных в самой БД и поиске среди них.
Да и выгрузка данных с внешних ресурсов само собой тормозит процесс.
Поможет, например при многопоточной записи в бд, чего не умеет ПХП. Ну и парсер на С++ будут явно быстрее работать, чем на ПХП
SiteAnalyzer - анализ и аудит сайта. Telegram: @majento
Chaser_81 вне форума Ответить с цитированием
Старый 08.06.2018, 16:39   #9
sauwork
Пользователь
 
Аватар для sauwork
 
Регистрация: 02.01.2015
Сообщений: 12
По умолчанию

Цитата:
Поможет, например при многопоточной записи в бд, чего не умеет ПХП
почему это ? - в простом случае можно организовать запись в раздельных http запросах - каждый запрос уже в своем потоке , но тут многое от алгоритма зависит , если это запись в одну таблицу , результат будет нулевой.
Да и потом , на уровне сервера БД есть свои планы и очередь обработки поступающих запросов , так что приложение может и закончит работу раньше, а вот сервер БД еще долго будет пыхтеть над тем , что ему напихали.

Цитата:
Ну и парсер на С++ будут явно быстрее работать, чем на ПХП
не явно ) , сам по себе движок Php затратит лишь время на интерпретацию php инструкций в скрипте - которых будет там на пару тройку строчек , в этом вся разница между c++ и php , а в остальном не заметите особых преимуществ. Вот если бы у Вас сам листинг php был на 500 мб , тогда да.
почта: sauwork@yandex.ru , телега: @sauwork

Последний раз редактировалось sauwork; 08.06.2018 в 17:00.
sauwork вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XML Парсер Berlioz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 02.01.2013 21:23
Парсер XML savva Общие вопросы по Java, Java SE, Kotlin 7 02.10.2011 23:11
XML парсер squa JavaScript, Ajax 0 09.02.2011 09:14
Парсер Gismeteo(xml) Homjak Общие вопросы Delphi 0 04.10.2010 08:15
парсер XML, не видит XML тэги supercelt PHP 3 02.11.2009 19:18