J'ai créé deux applications Heroku très simples pour tester le service, mais cela prend souvent plusieurs secondes pour charger la page lorsque je les visite pour la première fois:
- Cropify - Application Sinatra de base ( sur github )
- Textile2HTML - Application Sinatra encore plus basique ( sur github )
Tout ce que j'ai fait, c'est créer une simple application Sinatra et la déployer. Je n'ai rien fait pour gâcher ou tester les serveurs Heroku. Que puis-je faire pour améliorer le temps de réponse? C'est très lent en ce moment et je ne sais pas par où commencer. Le code des projets est sur github si cela vous aide.
la source
Vous voudrez peut-être également étudier les options de mise en cache que vous avez sur Heroku w / Varnish et Memcached. Ceux-ci sont persistants indépendamment des dynos.
Par exemple, si vous avez une page d'accueil inchangée, vous pouvez la mettre en cache pendant de longues périodes dans Varnish en ajoutant des en-têtes Cache-Control à la réponse. Ensuite, vos utilisateurs ne connaîtront pas le coup de chargement jusqu'à ce qu'ils veuillent «faire quelque chose» plutôt qu'à leur arrivée.
la source
Vous devriez consulter la réponse de Tom Robinson à "Évolutivité: comment fonctionne Heroku?" sur Quora: http://www.quora.com/Scalability/How-does-Heroku-work
Heroku répartit les ressources du serveur entre de nombreux clients / applications différents. Votre application se voit attribuer des blocs de puissance de calcul. Partitions Heroku basées sur la demande de ressources. Lorsque vous avez une application populaire qui demande plus de puissance, vous pouvez payer plus de «dynos» (conteneurs d'applications), puis obtenir une plus grande part du gâteau en retour.
Dans votre cas cependant, vous exécutez une application gratuite que peu de personnes - le cas échéant en dehors de vous - visitent / utilisent. Par conséquent, Heroku réduit les ressources que vous obtenez en déchargeant votre application - en la mettant essentiellement en veille prolongée - jusqu'à ce qu'une demande soit faite à votre adresse. Lorsque cela se produit et que votre application est inactive depuis longtemps, le rechargement prend du temps.
Ajoutez 1 dyno supplémentaire pour empêcher votre application de s'endormir, si ce temps de rechargement est important.
la source
J'ai le même problème. J'ai déployé une application Rails 3 (1.9.2) hier soir et c'est lent. Je sais que 1.9.2 / Rails 3 est en BETA sur Heroku mais le ticket de support disait que ça devrait aller en utilisant certaines instructions qu'ils m'ont envoyées.
Je comprends que la première demande après une longue période prend le plus de temps. Logique. Mais simplement charger des pages qui ne se connectent même pas à une base de données en 10 secondes est parfois assez mauvais.
Quoi qu'il en soit, vous voudrez peut-être essayer ce que je vais faire. C'est profiler mon application et voir combien de temps cela prend localement. Si cela prend 400 ms, alors quelque chose ne va pas. Mais si j'obtiens 50 ms localement et que cela prend encore 10 secondes sur Heroku, alors quelque chose ne va vraiment pas.
Évidemment, la mise en cache aide, mais vous n'obtenez que 5 Mo gratuitement et encore une fois, avec UNE personne utilisant le site, cela ne devrait pas être si lent.
la source