Witajcie,
WeBric wyświetla mi takie coś:
Started GET “/users” for 127.0.0.1 at 2015-04-24 10:59:08 +0200
Processing by UsersController#index as HTML
User Load (0.8ms) SELECT “users”.* FROM “users”
Rendered users/_user.html.erb (0.5ms)
Rendered users/_user.html.erb (0.4ms)
Rendered users/_user.html.erb (1.6ms)
Rendered users/_user.html.erb (0.6ms)
Rendered users/index.html.erb within layouts/application (9.0ms)
User Load (0.6ms) SELECT “users”.* FROM “users” WHERE “users”.“id” = $1 ORDER BY “users”.“id” ASC LIMIT 1 [[“id”, 4]]
Rendered layouts/_navigation_left_links.html.erb (3.0ms)
Rendered layouts/_navigation_right_links.html.erb (0.3ms)
Rendered layouts/_navigation.html.erb (5.1ms)
Rendered layouts/_footer.html.erb (3.0ms)
Completed 200 OK in 652ms (Views: 649.8ms | ActiveRecord: 1.5ms)
Podpowiedzcie proszę, gdzie szukać przyczyn tak długiego czasu całkowitego 652 ms?
W tym, że korzystasz zapewne z trybu development?
tak, tryb “development” ( assets:precompile nic nie daje?).
…Na produkcyjnym nginx+passenger ten czas wynosi 11ms.
samo wywołanie assets:precompile
niewiele Ci da dopóki będziesz miał flagi takie jak:
config.assets.compile = true
config.cache_classes = false
config.eager_load = false
ustawione w swoim pliku environments/development.rb
. Inna sprawa że zmiana ich wartości może i przyśpieszy czas wykonania requestu ale uczyni development dużo mniej przyjemnym.
Pytanie tylko czy warto się tym przejmować. Aplikacja na serwerze i tak będzie się zachowywać inaczej niż w lokalnym środowisku.
Dokładnie tak jak napisałeś.
Przestraszyłem się wstępnie tych czasów, ale po wgraniu na “produkcję” widzę, że jest OK.
Przy okazji…
Czy w konfiguracji NGINX’a (/etc/nginx/sites-available/my_app) , mam prawidłowe wpisy dotyczące cache?
…
location ~* \.(ico|css|js|gif|jp?g|png)(\?[0-9]+)?$ {
if ($query_string ~ "^[0-9]+$") {
expires 1Y;
add_header Cache-Control public;
break;
}
}
?
Czy ta część jest dobrze zdefiniowana i czy czasami nie powinienem dodać przed ‘break’:
add_header Last-Modified "";
add_header ETag "";
?
A może ten wpis winien tak wyglądać:
location ~ ^/assets/ {
expires 1y;
add_header Cache-Control public;
add_header ETag "";
break;
}
?
Z mojego ubogiego doświadczenia mogę jeszcze dorzucić uwagę że u mnie każdorazowe uruchomienie debuggera binding.pry
powoduje znaczne spowolnienie serwera, co w konsekwencji kończy się restartem (dzięki gemowi zeus
nie jest to takie uciążliwe, choć być może to on jest przyczyną problemów).