Witam,
tak się zastanawiam, ostatnio naczytałem się wiele na temat RoRa i jak jest mowa o tym, że jest wolny, to radzą puszczać to na JRuby. Z drugiej jednak strony piszą o tym, że niektóre pluginy na JRuby nie działają i może być problem. Dlatego mam pytanie o wrażenia z używaniem JRuby i jak to z tymi pluginami jest, co Wam nie działa?
hm, nie zauważyłem, żeby RoR był wolniejszy od takiego PHP
A na poważnie, warto zaczynać na czystym RoR, żeby pobawić się wszystkimi gemami. Jeśłi chodzi o środowiska produkcyjne, zawsze można skompilować swojego Ruby’iego, Niektórzy polecają Ruby Enterprise Edition. Są to rozwiązania wystarczająco szybkie dla średniej wielkości aplikacji (powiedzmy, że nie zaryzykowałbym takiego guardiana postawić na zwykłym RoR)
JRuby: powiadają, że jest szybki dzięki JVM, to fakt. Ale IMHO, poza rozwiązaniami Enterprise (np. integracje z istniejącymi systemami, serwisy działające pod olbrzymim obciążeniem) nie zaprzątałbym sobie nim głowy.
Co rozumiesz przez “jest wolny”? Przeciętny serwer (http://www.hetzner.de/de/hosting/produkte_rootserver_ds/ds7000/) jest w stanie pociągnąć ok. 20 req/s skomplikowanej strony bez cache’owania. To daje 1.7M odsłon na dobę. Czy to wolno?
Po dodaniu cache, można spokojnie tę ilość podnieść o jedno oczko. Wszystko na na REE 1.8.7 - czyli MRI a nie na JRuby.
Ja bym sobie zaprzątał
Jeżeli ktoś zaczyna od 0, to dlaczego nie zrobić aplikacji railsowej działającej na jruby? Większość aplikacji będzie działała i na jruby i na mri - mało jest bibliotek, które nie są przeportowane. Używając jrubiego można korzystać ze wszystkich core’ów procka i na jednej instancji obsłużyć więcej requestów (wątki). Rozmawiałem z headiusem na RuPy i mówił, że jeżeli ktoś nie ma żadnych aplikacji javovych, które musi podpiąć do serwera, to wystarczy bardzo prosty w obsłudze glassfish gem - nie trzeba stawiać żadnego tomcata, ani nic takiego. Dodatkowo dostajesz całkowicie gratisowo celerity bez żadnych mostków, też fajna zaleta
Wszystko oczywiście zależy od zapotrzebowań, ale dlaczego skreślać jrubiego tylko dlatego, że nie musimy integrować aplikacji z istniejącymi systemami?
Poza tym JRuby jest obecnie chyba jedynym sensownym rozwiązaniem jeśli chodzi o deployment aplikacji Rails na Windows. Nie wiem jak jest z IronRuby, może ktoś ma z tym jakieś doświadczenia i chciałby się nimi podzielić w osobnym wątku ?
Ostatnio pisałem w Ruby na zaliczenie program rozwiązujący Superstring with Expansion (NP-Complete), i w takich przypadkach JRuby wymiata. Przyspieszenie 2x-10x. (profiler pokazywał najwięcej czasu w Array#each i Array#[] jakby kogoś interesowały szczegóły)