Даст ли Go преимущества в таком проекте?

Есть такой проект:
0 раз в сутки пингуем жейсон на страничке, где выкладывается БД
1 если в жейсоне обновились данные относительно прошлого запроса(есть поле даты) - выкачиваем по ссылке в жейсоне зип-архив(~300Мб)
2 в архиве лежит 2 xml файла, нам нужен только один(~1Гб). Его парсим в нашу SQL
3 В нем находится список фирм, с кучей полей по каждой. Раза 2 или 4 в месяц в эту xml добавляются новые фирмы. Нам надо забрать выборку только по нескольким видам деятельности, там условий примерно 5 будет. Эти данные мы пишем в MySQL.

Сейчас это реализовано на пхп xmlreader'ом

Итого, вопрос - если всё или только часть этих задач переделать на Go, даст ли это какие-то преимущества настолько, чтобы стоило этим заниматься?
  • Вопрос задан
  • 776 просмотров
Пригласить эксперта
Ответы на вопрос 5
@deliro
Агрессивное программирование
Нет конечно. Большую часть времени твой скрипт будет качать, разархивировать и ждать БД.
Ответ написан
latteo
@latteo
Зависит от уровня программиста и оптимизации кода на PHP и Go.
К примеру: я давно работаю с php и для одной долгоработающей задачи, я быстренько прочитав ман, набросал код на Go, код отработал за такое же время как php 5.6 и на 30% медленнее чем php 7.1
Удивившись таким результатам я потратил пол дня на гуглинг и эксперименты с Go, выяснил где был косяк (специфика использования переменных в Go) и добился результата чуть-чуть быстрее php 7.1 :)
Для самообразования опыт оказался полезный, для оптимизации нет.

С парсингом xml\html всё гораздо более неоднозначно. На хабре, когда-то давно была статья, там в зависимости от языка и конкретной библиотеки в пределах одного ЯП, скорость выполнения отличалась в десятки раз. Тут без эксперимента выходит гадание чистой воды.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
какие действия вы хотите ускорить? Программная часть выполняет единственную сложную задачу - парсит хмл, все остальное работа базы и файловой системы, как написал Roman Kitaev, если часть работающая с парсингом хмл не устраивает по скорости - перепишите на go парсинг, имхо прироста в разы не будет, но процентов 30 поднимете.
Ответ написан
@beduin01
Нет, выкиньте нафиг Go. Это не язык, а недоразумение. Пишите уж на Python или вашем любимом PHP. Можете на D посмотреть. Там эта задача в 2 раза проще/короче чем на Go решается.
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Go для парсинга может быть очень неудобен.
Если вы сможете парсинг распараллелить по горутинам как-то, то следует задать себе вопрос а нельзя ли что-то подобное сделать и на пыхе? Возможно быстрее написать и поддерживать получится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы