/ / multithreading v Ruby vs JRuby vs Java - java, jruby

multithreading v Ruby vs JRuby vs Java - java, jruby

Som nováčka pre Ruby a JRuby a snažila som saaby implementoval viacvláknový kód v Ruby a dozvedel sa, že GIL neumožňuje, aby môj kód bežal paralelne, potom som sa presťahoval do JRuby a implementoval ten istý kód a moja doba vykonania v JRuby bola oveľa lepšia ako Ruby.I študoval, že JRuby rezanie je veľmi podobný závitov v Java, tak som implementoval rovnaký v kóde v Java a tiež som dostal výkon (vykonávacie čas) v Java byť takmer 10x rýchlejšie ako JRuby, môže mi niekto vysvetliť dôvod pre to? záloha

odpovede:

0 pre odpoveď č. 1

vysvetlenie je pomerne jednoduché, keď si myslíteo tom, že JRuby je Ruby implementovaný v jazyku Java, čo znamená, že máte "viac" Java kódu na vykonanie pomocou .rb kusu v porovnaní s jednoduchým .java zostavený do .class ...

ako aj v prípade, že odoslanie metódy bolo bezproblémové, tam je dynamická povaha Ruby, napríklad keď ste a+1 na Java pridáva k ints počas a+1 v Ruby je jeho prídavok s prepadmi atď.

Vaša otázka je celkom všeobecná a my takisto nieviete, aký druh merania výkonnosti ste urobili, ale nakoniec to všetko dopadá na produktivitu, keď robíte "reálny svet" prácu + s JRuby, ak máte pocit, že nejaká časť stojí za to byť 10x rýchlejšia, stále máte možnosť opätovne robiť to kus v "natívnom" Java.