героку медленное выполнение кода

Мне интересно, почему мой код node.js на heroku выполняется медленнее, чем моя точная копия этого кода на c9? Я запускаю код с той же базой данных, и выбор более дорогого дино в heroku, конечно, не имеет значения ....

в следующем примере отображаются мои console.logs с отметкой времени для каждой строки кода ... heroku постоянно занимает в 2-3 раза больше, чем c9, и я не понимаю почему.

касается этого процессора? Но даже если это теоретически, запуск heroku на самом дорогом динамометрическом стенде тоже не помогает ... Большое вам спасибо!

героку:

          mm:ss:SSS
line 1:   53:35:456
line 122: 53:35:460 - takes 4   ms
line 145: 53:35:600 - takes 140 ms
line 147: 53:35:671 - takes 71  ms
line 149: 53:35:818 - takes 147 ms

c9:

line 1:   59:20:141
line 122: 59:20:143 - takes 2  ms
line 145: 59:20:189 - takes 46 ms
line 147: 59:20:214 - takes 25 ms
line 149: 59:20:257 - takes 43 ms

person christian    schedule 08.08.2018    source источник
comment
это также зависит от серверов, возможно, у heroku нет таких эффективных серверов, как c9   -  person Daksh Miglani    schedule 08.08.2018
comment
Большое спасибо! Есть ли шанс получить более производительные серверы на heroku? Я не могу поверить, что это не может быть решено более дорогим планом ....?   -  person christian    schedule 08.08.2018
comment
в реальном мире я бы не стал использовать heroku или c9. они хороши во время разработки или даже для mvp. но позже я считаю, что вам следует использовать выделенный сервер / vpn.   -  person Daksh Miglani    schedule 08.08.2018
comment
Спасибо еще раз! Я знаю, что c9 специально создан для разработки, но heroku? Насколько мне известно, они специализируются на производстве и предлагают планы стоимостью до многих тысяч долларов в месяц ... Я что-то здесь пропустил?   -  person christian    schedule 08.08.2018
comment
вероятно, героку здесь является ограничивающим реагентом.   -  person Daksh Miglani    schedule 08.08.2018


Ответы (1)


Есть несколько возможных причин медленного приложения, но чтобы ответить на вопрос «почему Heroku медленнее, чем c9», вам сначала нужно сравнить спецификации на машинах.

Спецификации Heroku dyno опубликованы здесь: https://devcenter.heroku.com/articles/dyno-types На момент написания это:

Dyno Type Sleeps Professional Features Memory (RAM) CPU Share Dedicated Compute free yes no 512 MB 1x no 1x-4x hobby no no 512 MB 1x no 1x-4x standard-1x no yes 512 MB 1x no 1x-4x standard-2x no yes 1024 MB 2x no 4x-8x performance-m no yes 2.5 GB 100% yes 11x performance-l no yes 14 GB 100% yes 46x

«Микро» план на c9.io (опять же, на момент написания) выглядит как 512 МБ ОЗУ и 1xCPU, что, вероятно, сравнимо с бесплатным дино на Heroku (источник: Характеристики хостинга Cloud9)

Если вы не видите увеличения производительности при использовании более крупного типа dyno (standard-2x или выше), это говорит о том, что узкое место для приложения находится в другом месте. Если вы устанавливаете надстройку для мониторинга приложений, например Новая реликвия от https://elements.heroku.com/addons/categories/monitoring Это даст вам разбивку того, где приложение проводит время в течение цикла запроса.

Остающийся фактор - это задержка между вашей средой и любыми внешними ресурсами. Например, если вы используете данные RDS в том же регионе, что и ваш экземпляр Cloud9, но ваш динамометрический стенд Heroku работает в другом регионе AWS (см. https://help.heroku.com/X1JPM2Z6/where-is-each-region-geographically-located, чтобы определить это), то задержка между Heroku и вашим экземпляром RDS будет основным фактором времени отклика.

person xavriley    schedule 08.08.2018