Rails 3.2.x と Thin 1.5.0 を使用していますが、最初にアプリをロードするとき、たとえば 24 時間ロードしないと、非常に時間がかかります。最初は、それは私の MacBook だけだと思っていました。なぜなら、それはスリープ モードになっていて、なんらかの理由で最初は永遠にかかっていたからです。
しかし、Heroku でも同じことができ、他の人でも同じことができることに気付きました。しばらく Heroku サイトにアクセスしていないときのように、最初の読み込み (毎回ではなく、数回) には永遠に時間がかかります。
ログによると、私のスタイルシートのコンパイルには時間がかかるようです。私が混乱しているのは、Herokuにプッシュすると、プッシュ中にアセットをコンパイルする必要があるということです...そうですか? したがって、理論的には、それが本番環境での速度低下の原因であってはなりません。または、何か不足していますか?
ただし、最近、Heroku はプッシュを拒否しているため、これを有効にする必要がありました。
# Don't initialize app on pre-compile
config.assets.initialize_on_precompile = false
したがって、それが貢献しているかどうかはわかりません。
Started GET "/" for 127.0.0.1 at 2013-02-19 02:44:14 -0500
Processing by HomeController#index as HTML
Category Load (56.6ms) SELECT "categories".* FROM "categories" LIMIT 6
EXPLAIN (14.6ms) EXPLAIN QUERY PLAN SELECT "categories".* FROM "categories" LIMIT 6
EXPLAIN for: SELECT "categories".* FROM "categories" LIMIT 6
0|0|0|SCAN TABLE categories (~1000000 rows)
Banner Load (44.4ms) SELECT "banners".* FROM "banners" INNER JOIN "banner_types" ON "banner_types"."id" = "banners"."banner_type_id" WHERE (banner_types.name = 'Featured')
Banner Load (0.3ms) SELECT "banners".* FROM "banners" INNER JOIN "banner_types" ON "banner_types"."id" = "banners"."banner_type_id" WHERE (banner_types.name = 'Side')
Product Load (3.4ms) SELECT "products".* FROM "products"
Vendor Load (15.9ms) SELECT "vendors".* FROM "vendors"
User Load (50.0ms) SELECT "users".* FROM "users"
EXPLAIN (0.1ms) EXPLAIN QUERY PLAN SELECT "users".* FROM "users"
EXPLAIN for: SELECT "users".* FROM "users"
0|0|0|SCAN TABLE users (~1000000 rows)
Vendor Load (0.3ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 12 LIMIT 1
Vendor Load (0.2ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 11 LIMIT 1
Vendor Load (0.2ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 10 LIMIT 1
CACHE (0.0ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 12 LIMIT 1
CACHE (0.0ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 12 LIMIT 1
CACHE (0.0ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 10 LIMIT 1
Rendered home/_popular_products.html.erb (303.0ms)
Rendered home/_popular_stores.html.erb (2.4ms)
Rendered home/index.html.erb within layouts/application (570.6ms)
Compiled main.css (20360ms) (pid 86898)
Compiled application.css (2366ms) (pid 86898)
Rendered layouts/_login_nav.html.erb (1.0ms)
Rendered layouts/_navigation.html.erb (1.7ms)
Rendered layouts/_header.html.erb (47.3ms)
Rendered layouts/_messages.html.erb (0.2ms)
Rendered layouts/_footer.html.erb (0.5ms)
Completed 200 OK in 38402ms (Views: 30707.1ms | ActiveRecord: 1830.8ms)
考え?
編集1:
この質問は十分に回答されていないことに注意してください。回答は両方とも、質問の一部であるHerokuの問題について語っています。ただし、開発中に発生するこの問題に対処することはできません。