2011-11-14 14 views
5

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?

+0

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

+1

Spróbuj przeprowadzić test porównawczy serwera a programowanie za pomocą oprogramowania innej firmy. To znaczy. Phoronix. – Slotos

Odpowiedz

1
+0

Dzięki, ale te linki wydają się dotyczyć głównie czasu uruchamiania * Railsów *. Jeśli spojrzysz na kod testowy w pytaniu, zobaczysz, że dostaję spowolnienie 3x, po prostu wielokrotnie przypisuję zmienną w irb - bez ładowania Railsów, '' require's czy cokolwiek innego. Doszedłem do wniosku, że VPS to po prostu bzdura. – Russell

+0

Nie używam Railsów. Zrób drugie spojrzenie. :-) –

+0

Spojrzałem na nich! Chodzi o przyspieszenie * obciążenia * czasu, szczególnie poprzez przyspieszenie 'require'. Nie ma 'require's w' n = Time.now; x = 0; 10000000.times {x + = 1}; umieszcza Time.now - n' i irb jest już załadowany, więc nie widzę, w jaki sposób te linki mogą pomóc. – Russell