Есть ли способ улучшить производительность? - PullRequest
0 голосов
/ 28 июня 2011

Прежде всего, если вы прочитали мое описание вопроса и считаете, что я не предоставил достаточно информации, пожалуйста, дайте мне знать и сообщите мне, что было бы полезно для предоставления:

Я использую PhantomJS , «безголовый» движок Webkit для динамической генерации довольно больших изображений десяти веб-сайтов в каждом веб-запросе.В настоящее время я использую потоки Ruby для параллельного запуска этих процессов (каждый «процесс» - это создание образа для одного веб-сайта, и поэтому у меня есть десять потоков, выполняющихся для каждого веб-запроса).Однако даже при этом один запрос (содержащий десять потоков, работающих параллельно) на моем локальном сервере Webrick обычно занимает до двух минут, что просто недопустимо просить пользователя выполнить.

IЯ определенно собираюсь переместить эти процессы в фоновую задачу, а затем обновить страницу с помощью AJAX с изображениями, чтобы не связывать веб-запрос и улучшить взаимодействие с пользователем.Однако я не думаю, что переключение с потоков на фоновую задачу (я думаю об использовании Resque) фактически сократит время, необходимое для генерации и отображения изображений (я считаю, что Resque может выполнять свои задачи параллельно, так что я будуне нужны темы?).

Итак, мой вопрос заключается в том, как я могу быстрее генерировать и отображать эти изображения?Буду признателен за любой совет, начиная от того, на каких серверах или средах его запускать, и на каких инструментах использовать.Я не привязан ни к чему, что я сейчас использую.

1 Ответ

0 голосов
/ 28 июня 2011

Недостаточно информации для внушительных предложений, но:

В настоящее время я использую потоки Ruby для параллельного запуска этих процессов.

Что вы называете здесь «процессом»?Поиск десяти веб-сайтов вместе или поиск каждого из этих десяти?Если вы выполняете десять запросов параллельно, это будет быстрее, чем группы из десяти, выполняемые параллельно, но эти десять запросов будут выполняться последовательно в каждой группе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...