Completed 200 OK in xxxxxx ms

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.

Obczai też

config.debug = true

Dzięki za wskazówki

Pytanie tylko czy warto się tym przejmować. :slight_smile: 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).