Se pubblichi il contenuto del registro mentre viene elaborata la prima richiesta, forse possiamo capire cosa lo rende così lento. Ad esempio, questo è il mio registro come il primo utente accede al sito
Booting Mongrel (use 'script/server webrick' to force WEBrick)
Rails 2.1.0 application starting on http://0.0.0.0:3000
Debugger enabled
Call with -d to detach
Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.0/lib/action_controller/mime_type.rb:66: warning: already initialized constant CSV
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.
Processing SessionsController#new (for 127.0.0.1 at 2009-05-26 12:26:00) [GET]
Session ID: de2acf074759026e1ed6205724f547a9
Parameters: {"action"=>"new", "controller"=>"sessions"}
Rendering sessions/new
Completed in 0.00587 (170 reqs/sec) | Rendering: 0.00298 (50%) | DB: 0.00092 (15%) | 200 OK [http://localhost/]
Credo 170 reqs/sec è bene per la nostra applicazione, ma altri possono trovare che rallentano. È possibile vedere dalle statistiche che le rotaie forniscono che la metà del tempo richiesto viene speso per il rendering della risposta, in questo caso la generazione dell'HTML per la schermata di accesso. Se questa richiesta richiedeva molto tempo, il mio primo punto di riferimento sarebbero le viste e gli helper associati alla schermata di accesso.
Se si dispone di un sistema che impiega molto tempo per inizializzarsi sulla prima richiesta, allora perché non essere subdolo e scrivere il proprio programma di avvio che prima esegue le rotaie e quindi invia una richiesta falsa in via arricciatura. In questo modo i tuoi utenti non vedranno mai il problema.
Chris
fonte
2009-05-26 11:30:56
Grazie per il tuo suggerimento. Ecco il mio file di registro: http://pastie.org/private/ih2mpcmjpofp5jmfsvw A volte, dura molto più di 1600 ms per rispondere alla mia richiesta. Davvero non ne ho la minima idea ... – Stefan
Quale versione di rail usi? Completato in 10367ms (Visualizza: 1572, DB: 450) | 200 OK [http: // localhost/search? Search = stefan +] Sembra che occorrano 10 secondi per rispondere alla prima richiesta. Immagino che cercare di nuovo la stessa query "stefan" sia molto più veloce? Quanto ci vuole per trovare un altro record? Infine, quanto tempo ci vuole per cercare un record inesistente? –