#ruby-on-rails #performance #parsing #node.js
#ruby-on-rails #Производительность #синтаксический анализ #node.js
Вопрос:
я хочу создать анализатор, который анализирует несколько страниц XML-документа. эти страницы включают изображения и другие носители, которые обслуживаются дополнительным статическим сервером ресурсов. теперь мой вопрос:
должен ли я использовать rails для разбора документа или создать специальный сервер node, который это делает? я подумал о node из-за производительности.
анализатор создает HTML-документ из xml-файла.
заранее спасибо!
редактировать: эти HTML-страницы просматриваются несколькими пользователями.
Комментарии:
1. Я бы лично сделал это в Rails, поскольку в настоящее время я полностью влюблен в rails, но лучшее решение, вероятно, node.js 🙂 Удачи!
Ответ №1:
Я не думаю, что имеет большое значение, можете ли вы обрабатывать 100 тыс. страниц в секунду с помощью ruby или 200 тыс. страниц в секунду с помощью node.js если только вы не анализируете миллиарды XML-документов (я выдумал эти цифры). Вы должны использовать инструменты, с которыми вы лучше всего знакомы.
Тем не менее, есть несколько классных библиотек для веб-очистки / синтаксического анализа в node.js
Комментарии:
1. и включая преобразование из xml-элементов в html-элементы? итак, производительность в отношении синтаксического анализа построения? Спасибо
2. @Tronic хотя синтаксический анализ XML и является правдой (по сравнению, скажем, с JSON или yaml), вы все равно можете анализировать сотни тысяч XML-файлов в секунду на современном компьютере. Я не думаю, что вам следует беспокоиться о производительности
3. таким образом, асинхронный подход не будет иметь большого эффекта с точки зрения производительности синтаксического анализа? Спасибо!
4. @Tronic node.js является однопоточным, что означает, что он может анализировать только один документ за раз (это задача, связанная с процессором). Что node.js выделяется тем, что параллельно загружает страницы и анализирует их (или предоставляет их клиентам) в ожидании завершения другой загрузки, т. Е. не блокирует задачи, связанные с вводом-выводом.
5. Это объясняет, как node.js работает blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop или beakkon.com/geek/node.js /…
Ответ №2:
Я бы использовал node, потому что rails кажется немного излишним для этого. Однако, если вы больше знакомы с ruby вместо rails, вам следует использовать Sinatra или любой другой фреймворк меньшего размера. Просто я хочу сказать, что rails для этого закончен.