2014-04-08 6 views
0

Я запускаю рубин на службе Rails. Ruby 2.0 и rails 4.0 Работа на heroku занимает ~ 2x времени, которое он делает на моей локальной машине. Я бы ожидал, что элементы обработки фактически будут работать быстрее на большом сервере * #! #, Чем на моем компьютере macbook.Производительность Героку против локальной машины

извините за паршивых времена форматирования в секундах 1,00000

            Herok Macbook Air delta  
  1. job_id = Job.where (ID: user.id, активный: истинно) .pluck (: ID) [0] ___ t1 = 0,003 _ t2 = 0,126 _delta = 0,123
  2. {} работа Prep _ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ __ _t1 = 0.00_t2 = 0.00_delta = 0.00
  3. ImageData = Jobimage.find_by (job_id: job_id, уровень: 0) _ __ t1 = t2 = 0,349 0,044 дельта = 0,305
  4. изображения = Marshal.load (imagedata.data) _ __ _ __ _ __ _ __ _ __t1 = 0,374 t2 = 0,096 дельта = 0,278_
  5. Обработка задания _ __ _ __ _ __ _ __ _ __ _ __ _ ___ ___ ___ ___ _t1 = 0.51 t2 = 0,328 дельта = 0,182
  6. визуализации JSON: answer.to_s_ _ ___ ___ __ _ __ _ __ _ __ _ ___ _ _t1 = 0,51 t2 = 0,328 дельта0.182

для задания -переработки блока Кроме этого, эти заявления заключенных в лесозаготовительном заявлении

Я действительно удивлен на 4 и 6

Может кто-нибудь объяснить, почему Heroku будет получать начинку пинала из него мой записную

благодарит

ответ

1

Вы один из многих (сотни? тысячи?) людей, разделяющих эту физическую форму, и Heroku не имеет никакого стимула, чтобы сделать ваш код быстро для бесплатного экземпляра. Ваш Macbook Air делает (более или менее) одна вещь.

+0

Динамик Heroku 1X - 512 МБ и «1X CPU Share», т. Е. Меньше, чем у процессора. Я бы предположил, что даже у вашего Воздуха больше ударов. Весна для династии PX, и вы, вероятно, увидите разные результаты ... – mikeryz

+0

Я так думаю, но динамик PX не быстрее, привязал его только для проверки. – bobbdelsol

+0

Хорошо, я сделал еще несколько таймингов. Во-первых, мозг мертв с моей стороны, я перекрыл нагрузку маршала с помощью вызова db, сохраняя кучу времени. Но, насколько я могу судить, другое время, похоже, вызвано чем-то другим, удерживающим процесс рендеринга. Если я запускаю тест, просто выполняя команды .to_s или .to_json, это быстро, поэтому я угадываю, что что-то в блоке обработки заданий заканчивается до завершения рендеринга. Я сейчас займусь этим. – bobbdelsol

0

Я бы заглянул в драгоценный камень delayed_job. Судя по тому, что вы приурочили к своему пробою, я не думаю, что он будет применяться непосредственно к тому, что вы пытаетесь выполнить, но может оказаться полезным в другой части вашего проекта.

+0

Я использую delayed_job. Это здорово, я выгрузил все, что могу, это одна из задач, которые я должен выполнять в реальном времени. – bobbdelsol

Смежные вопросы