MagLev - wirtualna maszyna Smalltalka dla Rubiego

Opublikowane przez Jarosław Zabiełło Sat, 14 Jun 2008 17:11:00 GMT

Gemstone to komercyjna, rozwijana od ponad 20 lat, bardzo szybka maszyna wirtualna dla języka Smalltalk. Jest używana od lat w zastosowaniach biznesowych, m.in. w instytucjach finansowych. W odróżnieniu od innych Gemstone to coś więcej niż tylko maszyna wirtualna. Gemstone posiada wbudowany mechanizm bardzo wydajnego, transakcyjnego zapisu obiektów, chodzi to obsługę obiektów rzędu setek i tysięcy miliardów (lub informacji o wielkości 17 petabajtów). MagLev to smalltalkowy GemStone S64 VM z dodanym bytecodem pozwalającym na uruchamianie Rubiego. W różnych benchmarkach MagLev jest szybszy od Rubiego MRI od 7 do ponad 100 razy i osiąga szybkość zbliżoną do czystego C. Dodatkowo daje przezroczysty, wydajny zapis obiektów Rubiego w sposób znacznie wygodniejszy od tego co oferują relacyjne bazy danych. Czyżby wkrótce można było pokusić się o napisanie odpowiednika Zope w Rubim pracującym pod wydajną, wirtualną maszyną Smalltalka?

Na razie projekt jest młody. Maszyna wirtualna pewnie będzie zamkniętym kodem, ale reszta powinna być wolna. Pierwsza prezentacja możliwości Rubiego na MagLev odbyla się na niedawnej konferencji RailsConf 2008. Dostępne jest już pierwsze wideo z prezentacji MagLev’a (pozostałe dwie części są w trakcie przygotowywania).


MagLev presentation at RailsConf 2008 – part 1 from Monty Williams on Vimeo.


Zobacz też:

  • RailsConf 2007 – Avi Bryant – ciekawe wystąpienie Avi Branta przekonanego że zasadniczo Ruby prawie nie różni się od Smalltalka, w zasadzie to ten sam język i nie ma żadnego powodu dla którego Ruby nie mógłby być tak szybki jak Smalltalk (a Smalltalk jest 10x szybszy od Pythona…)

Tagi , , , , ,  | 6 comments

Comments

  1. Avatar Radarek powiedział about 6 hours later:

    Na forum zaraz po RailsConf była na ten temat dyskusja (http://www.rubyonrails.pl/forum/t1041-MagLev). Teraz czekamy na rozwój wydarzeń ;).

  2. Avatar RazorJack powiedział about 16 hours later:

    Myślę, że za dużo tutaj podniety zakompleksionych Railsowców, których framework się nie skaluje :).

    Oczywiste jest to, że jak się napisze benchmark pod dobrze zoptymalizowany fragment kodu, to się zawsze okaże, że nasza VM bije wszystkie na głowę. Przypadek, w którym MagLev był prawie tak samo szybki jak C++ dotyczył zapewne samego Garbage Collectora, a nie całej aplikacji railsowej.

    Podobnie jak z Rubiniusem – w benchmarkach wypada super, ale po odpaleniu na nim frameworka póki co entuzjazm spada.

    Oczywiście jako VM (w dodatku od wielu lat optymalizowana), MagLev będzie szybszy od MRI. Ale Ruby jest na tyle wysokopoziomowym językiem, że moim zdaniem na stukrotny (nawet dziesięciokrotny) wzrost wydajności nie ma żadnych szans. To OODB jest atutem MagLev, a nie jest wydajność.

  3. Avatar Jarosław Zabiełło powiedział about 18 hours later:

    @RazorJack: Z tym skalowaniem to rozumiem żeś palnął głupstwo tak dla jaj, bo Rails się skaluje (problemem Railsów nie jest skalowalność ale ogólna wydajność na tle alternatywnych rozwiązań, np. Merb’a czy Django). Anyway, JRuby pokazał, że szybkość języka nie musi się przekładać na szybkość frameworku takiego jak Rails. Rails ma najwyraźniej implementację którą trudno optymalizować i tu nawet MagLev nie pomoże. Podejrzewam, że Merb, który jest jakieś 3x szybszy od Rails, dałby się łatwiej optymalizować przez MagLev i jego JIT’a.

    Avi Bryant twierdzi, że Ruby prawie nie różni się od Smalltalka, w zasadzie to ten sam język i nie ma żadnego powodu dla którego Ruby nie mógłby być tak szybki jak Smalltalk, a Smalltalk jest 10x szybszy od Pythona…

    W każdym razie, nie ważne ile razy, ale raczej nie pomylę się twierdząc, że MagLev może być dużym graczem i prawdopodobnie będzie to najszybsza i najciekawsza (dzięki OODB) maszyna wirtualna dla Rubiego. Osobiście chciałbym zobaczyć w końcu Zope for Ruby.

  4. Avatar Tomash powiedział 1 day later:

    MagLev nie jest nakładką na smalltalkowy VM, jest implementacją “from ground-up”. Choć oczywiście robioną przez tę samą firmę. podobną ekipę i pewnie trochę fragmentów kodu jest wspólnych.

    Cała reszta to hype, którym od RailsConf karmi się bezkrytyczna połowa railsowej społeczności. Niech zrobią i pokażą kompletny produkt. Do tego czasu pozwolę sobie zachować zdrowy sceptycyzm.

  5. Avatar dmilith powiedział 2 days later:

    co za kretyn sterował tą kamerą?

  6. Avatar dmilith powiedział 26 days later:

    pytanie kiedy to coś będzie dostępne dla indywidualnych użytkowników ( nie sądzę bynajmniej by była jakakolwiek szansa na OpenSource – Maglev ) kolejna kwestia to KIEDY będzie można to samemu przetestować.. na razie są tylko zapowiedzi.. i żadnych konkretów

(leave url/email »)

   Pomoc języka formatowania Obejrzyj komentarz