Antes de tudo, estou desenvolvendo uma app que renderiza algumas coisas “a quente” nas views, só que isso tá impraticável:

Processing ComputersController#index (for 127.0.0.1 at 2009-06-04 07:15:14) [GET]  Computer Load (1.6ms)   SELECT * FROM `computers` ORDER BY price ASC LIMIT 0, 5
  Computer Columns (0.9ms)   SHOW FIELDS FROM `computers`
  SQL (0.2ms)   SELECT count(*) AS count_all FROM `computers`
Rendering template within layouts/computers
Rendering computers/index
Completed in 2546ms (View: 2531, DB: 3) | 200 OK [http://127.0.0.1/computers]

Eu preciso cachear as coisas a quente. Buscando informações sobre caching no Rails, comecei com o seguinte:

  • config/environments/development.rb : setar o config.action_controller.perform_caching para true
  • app/controllers/computers_controller.rb : setar o caches_page :action (index, no meu caso)

Reiniciei o Mongrel, dei um reload na página e:

Processing ComputersController#index (for 127.0.0.1 at 2009-06-04 07:21:54) [GET]
  Computer Load (1.6ms)   SELECT * FROM `computers` ORDER BY price ASC LIMIT 0, 5
  Computer Columns (1.0ms)   SHOW FIELDS FROM `computers`
  SQL (0.2ms)   SELECT count(*) AS count_all FROM `computers`
Rendering template within layouts/computers
Rendering computers/index
<strong>Cached page: /computers.html (0.7ms)</strong>
Completed in 2480ms (View: 2467, DB: 3) | 200 OK [http://127.0.0.1/computers]

Bem mais rápido :D

Navegando entre as outras páginas (thanks to will_paginate rails plugin), quem disse que funcionava algo? O resultado é a mesma página que carreguei da primeira vez, isto para todas as páginas (de 1 a 348). Ou seja, não deu certo habilitar o caching.

Update: o que eu precisava era de fragment caching.

Posts relacionados:

  1. lighttpd: quando o .htaccess não funciona
  2. pfXXX – A Simple Interface for OpenBSD Packet Filter (written in Ruby on Rails!)
  3. Sort a file by second to last value in a line with awk
  4. Ubuntu – porque funciona. Por que funciona?!
  5. Integrate Ruby and Asterisk (call detail record) using ActiveRecord

No comments yet

Deixe Seu Comentário