Ich habe eine app, und in nur Controller sind, wird eine Aktion so konfiguriert:Neu bei Rails, ist diese Art von Leistung normal?
def do_call
response = <<EOF
<real-time-stat>
<awt type="integer">1</awt>
<cc type="integer">5</cc>
<cp type="integer">0</cp>
<dc type="integer">0</dc>
<ef type="float">100.0</ef>
<rc type="integer">6</rc>
<sl type="float">100.0</sl>
<state type="integer">0</state>
<ts type="datetime">2009-07-24T10:36:57Z</ts>
<wc type="integer">0</wc>
<wprc type="float">0.0</wprc>
<real-time-stat>
EOF
respond_to do |format|
format.xml { render :xml => response }
end
end
Dies ist ein Test für eine Aktion, die in der Zukunft, die Felder aus einer MySQL-DB abrufen. Allerdings läuft diesen Code in Produktion Modus, von einem LOCAL WEBrick Server auf Port 3000 läuft auf einem Pentium 4 (ein bisschen alt, aber Dual-Core) Maschine, bekomme ich Reaktionszeiten (gemessen von YSlow, ein Yahoo! Add-On für Firebug) von 175 bis 500 Millisekunden (wild fluktuierend)!
Ist das normal? Mache ich es falsch? In Anbetracht der Tatsache, dass ich mehrere Abfragen in einer einzigen Antwort und XML-ify alle von ihnen (mit ActiveResource) aggregieren möchte, bekomme ich Glockengeläute, dass es unmöglich skalieren kann ...: |
Danke für jede Rückmeldung!
EDIT: Wechsel zu Mongrel ändert sich die Situation nicht viel, noch 175-300 ms pro Antwort. Die Protokolle zeigen jedoch 0 bis 15 ms pro "abgeschlossener" Anfrage (200 OK). Ist der Unterschied auf die Darstellung des XML-Codes durch Firefox zurückzuführen? Wenn nicht, woher kommt es?
Ja, die Zeit auf dem Server und die Zeit im Browser rendern kann sehr unterschiedliche Dinge sein. Wenn Sie sich Sorgen um die Leistung machen, schauen Sie sich die Screencasts von Greg Pollack von Rails Envy an. – nitecoder