Po pierwsze, przerzuciłbym się na Linuksa, gdybym mógł, ale nie mogę, z powodu zależności od strony trzeciej.Dlaczego Ruby działa o wiele wolniej na serwerze Windows niż na komputerze z systemem Windows?
Jestem w trakcie wykańczania i wdrażania aplikacji szyny na serwerze Windows 2008. Podczas testowania na serwerze aplikacja okazuje się boleśnie powolna, a żądania trwają od 2 do 5 sekund. Nigdzie nie jest tak wolno na mojej maszynie programistycznej i o ile wiem, powolność tkwi w samym Railsach, czyli. Widzę na serwerze logowanie takie jak Completed 200 OK in 1859ms (Views: 1687.5ms)
w porównaniu do Completed 200 OK in 347ms (Views: 298.0ms)
na moim komputerze.
Wiem, że Rails powinien działać wolniej na Windowsie niż na Linuksie, ale dlaczego miałby działać wolniej na serwerze Windows niż na moim komputerze z systemem Windows 7?
W rozwoju używam WEBrick, na serwerze pracuję cienko pod apache. Próbowałem również uruchomić cienki na moim komputerze dev i jest szybszy, jeśli cokolwiek niż WEBrick. Czy ktoś ma jakieś sugestie dotyczące tego, co może powodować tak duże spowolnienie lub na co zwrócić uwagę? Coś w ogóle byłoby bardzo cenne.
Aktualizacja: Wygląda na to, że sam Ruby jest znacznie wolniejszy na serwerze. Uruchomione następujące w IRB trwa 0,6 sekundy na moim komputerze dev, ale średnio więcej niż 3 sekundy na serwerze:
n = Time.now ; x = 0 ; 10000000.times { x += 1 } ; puts Time.now - n
Co może być przyczyną Ruby do uruchamiania tak znacznie wolniej (więcej niż 3x) na serwerze ? Czy to może być wersja systemu Windows? Albo coś innego? Wersja Ruby jest dokładnie taka sama: ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
.
Aktualizacja ponownie:
głupio nie wspomnieć o tym wcześniej, ale to jest VPS. Jednak, mimo że jestem gotów zaakceptować to spowolniłoby to nieco - jest ponad 3 razy wolniejsze realistycznie?
Jakie jest obciążenie serwera jak? Ruby jest dość ciężki dla procesora, jeśli jest już duże obciążenie, będzie dość powolny. – AboutRuby
Spróbuj przeprowadzić test porównawczy serwera a programowanie za pomocą oprogramowania innej firmy. To znaczy. Phoronix. – Slotos