Rails 3 stranamente lento

Buongiorno lista/forum.
E’ da qualche giorno che mi sono messo a provare Rails 3 su una macchina
virtuale con Debian Squeeze.
Ho seguito l’installazione via rvm, creata l’applicazione e creato un
database con una tabella.
Ho caricato un dato nella tabella e creato la struttura per vederne il
contenuto, quest’ultima fatta a mano, senza usare lo scaffolding
automatico: tanto per ora sono poche righe di codice e così prendo mano
con le eventuali differenze da rails 2.

Il problema è che per caricare quell’unica pagina anche dando il link
diretto (quindi in teoria non dovrebbe usare strane routes o cercare
chissà cosa) ci impiega fino a 47 secondi… non mi pare normale… qui
sotto un po’ di codice:

model dati.rb:

class Dati < ActiveRecord::Base
end


controller dati_controller.rb:

class DatiController < ApplicationController
def index
list
render :action => ‘list’
end

def list
@datis = Dati.all
end
end


view list.html.erb:

Dati#list

Find me in app/views/dati/list.html.erb

<% @datis.each do |dati| %>

<% if dati.dato5.length > 30 %>
<% descr = dati.dato5[0…30] + “…” %>
<% else %>
<% descr = dati.dato5 %>
<% end %>

<% end %>
Data dato2 dato3 dato4 dato5 dato6 dato7 dato8
<%= dati.id %> <%= dati.data.strftime("%d/%m/%Y - %H:%M.%S") %> <%= dati.dato2 %> <%= dati.dato3 %> <%= dati.dato4 %> <%= descr %> <%= dati.dato6 %> <%= dati.dato7 %> <%= dati.dato8 %>


Come si può notare, non c’è chissà cosa da caricare…

Dico subito che non è “colpa” dell’hardware virtualizzato: sulla stessa
macchina ho provato un’istanza di Plone molto più pesante e fila che è
un piacere.

Lo so che la richiesta è di difficile soluzione, ma secondo voi quale
potrebbe essere la causa o cosa potrei guardare per farmi un’idea si
cosa sta rallentando l’applicativo?
Sul log mi dice questo:

Started GET “/dati/list” for [IP_macchina_mia] at 2011-02-10 14:28:54
+0100
Processing by DatiController#list as HTML
ESC[1mESC[35mDati Load (0.2ms)ESC[0m SELECT datis.* FROM datis
Rendered dati/list.html.erb within layouts/application (24.3ms)
Completed 200 OK in 38ms (Views: 29.1ms | ActiveRecord: 0.2ms)

Grazie in anticipo.

credo che il problema sia altrove, la risposta te l’ha data in tempi
accettabili :stuck_out_tongue:

ciao,
A.

Il 10/02/2011 14:47, Daneel O. ha scritto:

Completed 200 OK in 38ms


http://twitter.com/apeacox

Andrea P. wrote in post #980816:

credo che il problema sia altrove, la risposta te l’ha data in tempi
accettabili :stuck_out_tongue:

ciao,
A.

Il 10/02/2011 14:47, Daneel O. ha scritto:

Completed 200 OK in 38ms

Infatti, lo stavo sospettando ed ho anche trovato la causa: WEBrick che
va a farfalle cercando di risolvere i nomi.

Come dicono qui: http://www.ruby-forum.com/topic/218316 basta impostare
su webrick/config.rb (nella sua directory di installazione… “find” è
stato molto utile :slight_smile: ) il parametro “:DoNotReverseLookup” a “true”,
quindi:

al posto di: :DoNotReverseLookup => nil

mettere: :DoNotReverseLookup => true

(che nella versione che ho in rails 2 non c’è)

Grazie e spero di essere d’aiuto anche ad altri :slight_smile:

2011/2/10 Daneel O. [email protected]

WEBrick che
va a farfalle cercando di risolvere i nomi.

Ti consiglio vivamente di passare a qualcosa come mongrel o thin in fase
di
sviluppo.

Ciao,
Antonio

Homepage: http://antoniocangiano.com
High-Quality Programming Screencasts: http://thinkcode.tv
Never miss a great book again: http://anynewbooks.com

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs