Proč je Java pomalá a problémová?

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #60 kdy: 16. 12. 2013, 10:05:54 »

Volání virtuálních metod funguje jednou instrukcí již 25 let :-) Hrátky se stringy se samozřejmě také řeší, viz SSE 4.2.

Tak ted nevim, copak je to za instrukci, ktera nacte vtable, spocita offset a skoci na adresu ulozenou na vtable+offset?


%P-CDR-CODE

Re:Proč je Java pomalá a problémová?
« Odpověď #61 kdy: 16. 12. 2013, 10:20:28 »

Volání virtuálních metod funguje jednou instrukcí již 25 let :-) Hrátky se stringy se samozřejmě také řeší, viz SSE 4.2.

Tak ted nevim, copak je to za instrukci, ktera nacte vtable, spocita offset a skoci na adresu ulozenou na vtable+offset?

CALL, pokud máte (pravděpodobně emulovaný) CONS, CADR, TI Explorer, cokoli od Symbolics atd. :) LISP má na neidiotských architekturách volání virtuálních method už od roku 1973, heč  ;)

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #62 kdy: 16. 12. 2013, 10:27:38 »

Volání virtuálních metod funguje jednou instrukcí již 25 let :-) Hrátky se stringy se samozřejmě také řeší, viz SSE 4.2.

Tak ted nevim, copak je to za instrukci, ktera nacte vtable, spocita offset a skoci na adresu ulozenou na vtable+offset?

CALL, pokud máte (pravděpodobně emulovaný) CONS, CADR, TI Explorer, cokoli od Symbolics atd. :) LISP má na neidiotských architekturách volání virtuálních method už od roku 1973, heč  ;)

cekal jsem kdo vytahne procesory od Symbolicsu, takze za toto ++ :)
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/

ohlol

Re:Proč je Java pomalá a problémová?
« Odpověď #63 kdy: 16. 12. 2013, 11:51:06 »
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/
Tak to do konce roku nekdo tezko trumfne. Recyklovat programatory v cele firme a vyvojarske nastroje kazde 2 roky nebo jak casto se pridavaji nove instrukce na Intel/AMD

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #64 kdy: 16. 12. 2013, 12:06:02 »
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/
Tak to do konce roku nekdo tezko trumfne. Recyklovat programatory v cele firme a vyvojarske nastroje kazde 2 roky nebo jak casto se pridavaji nove instrukce na Intel/AMD

he, nekde se recykluji programatori kdyz prijde nova ficura? :) Ono se to samozrejme deje, ale docela pomalu a jak tak vidim ne mainstreamove. Napriklad http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html, Parallel.For/Parallel.ForEach,  v minulosti s tim docela pohnuly Craye, v Jave 8 zase lambda vyrazy (s implicitni paralelizaci) atd. Ale pobavilo, jestli je na tom obecne IT tak spatne, ze nestaci vstrebavat nove technologie, tak snad jeste chvilku budu mit zajimavou praci :-)


%P-CDR-CODE

Re:Proč je Java pomalá a problémová?
« Odpověď #65 kdy: 16. 12. 2013, 14:31:06 »
cekal jsem kdo vytahne procesory od Symbolicsu, takze za toto ++ :)
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/

Opět musím odkázat na LISP machines, hle, dva způsoby volání funkce (bráno na CADRu):

Kód: [Vybrat]
(DEFUN FOO (X)
  (BAR X 2))

Kód: [Vybrat]
(DEFUN FOO (X)
  (%OPEN-CALL-BLOCK #'BAR 0 4)
  (%PUSH X)
  (%PUSH 2)
  (%ACTIVATE-OPEN-CALL-BLOCK))

(Téměř) každá makroinstrukce na této nádherné architektuře měla odpovídající funkci. Doporučuji shlédnout toto a cítit ohromení a smutek nad tím, co jsme ztratili.

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #66 kdy: 16. 12. 2013, 14:47:32 »
cekal jsem kdo vytahne procesory od Symbolicsu, takze za toto ++ :)
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/

Opět musím odkázat na LISP machines, hle, dva způsoby volání funkce (bráno na CADRu):

Kód: [Vybrat]
(DEFUN FOO (X)
  (BAR X 2))

Kód: [Vybrat]
(DEFUN FOO (X)
  (%OPEN-CALL-BLOCK #'BAR 0 4)
  (%PUSH X)
  (%PUSH 2)
  (%ACTIVATE-OPEN-CALL-BLOCK))

(Téměř) každá makroinstrukce na této nádherné architektuře měla odpovídající funkci. Doporučuji shlédnout toto a cítit ohromení a smutek nad tím, co jsme ztratili.

jj kolegyne kdysi delala s Symbolicsu, LISPovsky navyky ma dodnes, a to dela neco jinyho (konkretne GC pro JVM :-)

ohlol

Re:Proč je Java pomalá a problémová?
« Odpověď #67 kdy: 16. 12. 2013, 14:56:20 »
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/
Tak to do konce roku nekdo tezko trumfne. Recyklovat programatory v cele firme a vyvojarske nastroje kazde 2 roky nebo jak casto se pridavaji nove instrukce na Intel/AMD

he, nekde se recykluji programatori kdyz prijde nova ficura? :) Ono se to samozrejme deje, ale docela pomalu a jak tak vidim ne mainstreamove. Napriklad http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html, Parallel.For/Parallel.ForEach,  v minulosti s tim docela pohnuly Craye, v Jave 8 zase lambda vyrazy (s implicitni paralelizaci) atd. Ale pobavilo, jestli je na tom obecne IT tak spatne, ze nestaci vstrebavat nove technologie, tak snad jeste chvilku budu mit zajimavou praci :-)

Dobry pokus o flame. Zkusim protiflame:

Java vznikla jako prenositelna a protoze se neda spolehnout na procesor pod ni, tak by mel jazyk nabizet prazdnou mnozinu jazykovych konstrukci. V schovivavejsim pripade maximalne lidsky privetivejsi prepis bytekodu.

A ted zpatky bez flame. Proc chcete protlacit praci, kterou odvede kompilator o vrstvu vys primo do zdrojoveho kodu? Aby se mohly vsechny projkety zahodit, napsat znovu a prodat znovu? A kdo to zaplati?

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #68 kdy: 16. 12. 2013, 15:30:54 »
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/
Tak to do konce roku nekdo tezko trumfne. Recyklovat programatory v cele firme a vyvojarske nastroje kazde 2 roky nebo jak casto se pridavaji nove instrukce na Intel/AMD

he, nekde se recykluji programatori kdyz prijde nova ficura? :) Ono se to samozrejme deje, ale docela pomalu a jak tak vidim ne mainstreamove. Napriklad http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html, Parallel.For/Parallel.ForEach,  v minulosti s tim docela pohnuly Craye, v Jave 8 zase lambda vyrazy (s implicitni paralelizaci) atd. Ale pobavilo, jestli je na tom obecne IT tak spatne, ze nestaci vstrebavat nove technologie, tak snad jeste chvilku budu mit zajimavou praci :-)

Dobry pokus o flame. Zkusim protiflame:

Java vznikla jako prenositelna a protoze se neda spolehnout na procesor pod ni, tak by mel jazyk nabizet prazdnou mnozinu jazykovych konstrukci. V schovivavejsim pripade maximalne lidsky privetivejsi prepis bytekodu.

A ted zpatky bez flame. Proc chcete protlacit praci, kterou odvede kompilator o vrstvu vys primo do zdrojoveho kodu? Aby se mohly vsechny projkety zahodit, napsat znovu a prodat znovu? A kdo to zaplati?

To jsem ale vubec netvrdil! Proc by se napriklad s pridamim lambda vyrazu (nebo coz porad doporucuji - vektorovych konstrukci) do C++ mely prepisovat nebo nedejboze zahazovat starsi projekty? Pisu o pridani dalsich konstrukci reflektujicich nove vlastnosti procesoru - driv ci pozdeji k tomu v nejake podobe dojde a zalezi jen na firmach jak se k tomu postavi (pro mnoho prumernych firem je samozrejme snazsi se vest, tech par firem na spicce to pravdepodobne prevezme nebo i zacne ridit - viz google a jeho vyvijeny procesor). Nebo snad chcete rict, ze se dnes programuje stale se stejnymi jazykovymi konstrukcemi jako pred 10,20,30 lety?

%P-CDR-CODE

Re:Proč je Java pomalá a problémová?
« Odpověď #69 kdy: 16. 12. 2013, 15:46:32 »
Nebo snad chcete rict, ze se dnes programuje stale se stejnymi jazykovymi konstrukcemi jako pred 10,20,30 lety?

Očividně ano, jinak by totiž na x86 nepůsobil tlak trhu, který vyžaduje zpětnou kompatibilitu se slunečními hodinami na dvoře faraona Tutanchamona ;D Doporučuji všem neznalým přečíst třeba něco o A20 nebo o pekle, kterým je snaha přepnout 64-bitový Intel z reálného do dlouhého módu. Krásný příklad toho, jaká kolosální stupidita je v základech 90 % veškeré dnešní "moderní" výpočetní techniky.

Pavel Tisnovsky

Re:Proč je Java pomalá a problémová?
« Odpověď #70 kdy: 16. 12. 2013, 15:55:11 »
Nebo snad chcete rict, ze se dnes programuje stale se stejnymi jazykovymi konstrukcemi jako pred 10,20,30 lety?

Očividně ano, jinak by totiž na x86 nepůsobil tlak trhu, který vyžaduje zpětnou kompatibilitu se slunečními hodinami na dvoře faraona Tutanchamona ;D Doporučuji všem neznalým přečíst třeba něco o A20 nebo o pekle, kterým je snaha přepnout 64-bitový Intel z reálného do dlouhého módu. Krásný příklad toho, jaká kolosální stupidita je v základech 90 % veškeré dnešní "moderní" výpočetní techniky.

Pekne a bohuzel i pravdive receno s temi hodinami :) On i Intel se snazil nekolikrat prejit nekam dal, no ve svete Wintelu se to nikdy nepodarilo (skoro vsude jinde ano), ale ted s postupnym (a dosti rychlym) nastupem rekneme alternativ k umirajicimu PC se to konecne pohnulo rychleji dopredu (Aarch64 vypada skutecne dobre).

omg

Re:Proč je Java pomalá a problémová?
« Odpověď #71 kdy: 16. 12. 2013, 16:29:27 »
Ja spis cekam, kdy konecne zacnou vyssi programovaci jazyky nabizet programove konstrukce, ktere zvlada procesor pod nimi, ale k tomu asi nedojde :/
Tak to do konce roku nekdo tezko trumfne. Recyklovat programatory v cele firme a vyvojarske nastroje kazde 2 roky nebo jak casto se pridavaji nove instrukce na Intel/AMD

he, nekde se recykluji programatori kdyz prijde nova ficura? :) Ono se to samozrejme deje, ale docela pomalu a jak tak vidim ne mainstreamove. Napriklad http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html, Parallel.For/Parallel.ForEach,  v minulosti s tim docela pohnuly Craye, v Jave 8 zase lambda vyrazy (s implicitni paralelizaci) atd. Ale pobavilo, jestli je na tom obecne IT tak spatne, ze nestaci vstrebavat nove technologie, tak snad jeste chvilku budu mit zajimavou praci :-)

Dobry pokus o flame. Zkusim protiflame:

Java vznikla jako prenositelna a protoze se neda spolehnout na procesor pod ni, tak by mel jazyk nabizet prazdnou mnozinu jazykovych konstrukci. V schovivavejsim pripade maximalne lidsky privetivejsi prepis bytekodu.

A ted zpatky bez flame. Proc chcete protlacit praci, kterou odvede kompilator o vrstvu vys primo do zdrojoveho kodu? Aby se mohly vsechny projkety zahodit, napsat znovu a prodat znovu? A kdo to zaplati?

To jsem ale vubec netvrdil! Proc by se napriklad s pridamim lambda vyrazu (nebo coz porad doporucuji - vektorovych konstrukci) do C++ mely prepisovat nebo nedejboze zahazovat starsi projekty? Pisu o pridani dalsich konstrukci reflektujicich nove vlastnosti procesoru - driv ci pozdeji k tomu v nejake podobe dojde a zalezi jen na firmach jak se k tomu postavi (pro mnoho prumernych firem je samozrejme snazsi se vest, tech par firem na spicce to pravdepodobne prevezme nebo i zacne ridit - viz google a jeho vyvijeny procesor). Nebo snad chcete rict, ze se dnes programuje stale se stejnymi jazykovymi konstrukcemi jako pred 10,20,30 lety?

Instrukce se i odebiraji.

Tonek

Re:Proč je Java pomalá a problémová?
« Odpověď #72 kdy: 16. 12. 2013, 19:18:22 »
V neposledni rade jsou zde bumbrlicci typu Swing, s tim mam zkusenost minimalni, tak to nebudu hodnotit.

uz samotna veta obsahuje hodnotenie. so swingom mame dost skusenosti, za bumbrlika by som ho nepovazoval. celkom dost firiem v tom ma napisanych aplikacii bez toho aby co len tusili "co ze to tam bezi".

ferren

Re:Proč je Java pomalá a problémová?
« Odpověď #73 kdy: 16. 12. 2013, 19:58:36 »
java teoreticky problemova neni, a zajiste existuje spousta perfektne napsanych benchmarku (netroufam si napsat i aplikaci) kde bezi srovnatelne nebo jeste lepe nez prumerne napsane Ccko. Pointa ale je v tom, ze ti lide, co v Jave dokazi psat velmi vykonne aplikace je v realu pisi v necem jinem a tak v realnem svete zustavaji jen podivne splacane javovske podivnosti....ono to asi nebude jazykem samotnym, ale zpusobem jeho popularizace a soucasnymi trendy...

mimochodem, ktera ne-benchmark aplikace se da povazovat za takovou vykladni skrin Javy, nejaky takovy high performance big ass produkt napsany v jave?

Re:Proč je Java pomalá a problémová?
« Odpověď #74 kdy: 16. 12. 2013, 20:14:01 »
java teoreticky problemova neni, a zajiste existuje spousta perfektne napsanych benchmarku (netroufam si napsat i aplikaci) kde bezi srovnatelne nebo jeste lepe nez prumerne napsane Ccko. Pointa ale je v tom, ze ti lide, co v Jave dokazi psat velmi vykonne aplikace je v realu pisi v necem jinem a tak v realnem svete zustavaji jen podivne splacane javovske podivnosti....ono to asi nebude jazykem samotnym, ale zpusobem jeho popularizace a soucasnymi trendy...
Java ma obecne nizsie poziadavky na programatora ako napr. C++, preto ju pouziva viac menej skusenych ludi (oproti C++). A to potom ovplyvnuje kvalitu vysledneho programu. Na druhu stranu Java umoznuje programovat ludom, ktorych by C++ od programovania odradilo.

mimochodem, ktera ne-benchmark aplikace se da povazovat za takovou vykladni skrin Javy, nejaky takovy high performance big ass produkt napsany v jave?
Napadaju ma dve slusne fungujuce aplikacie a to Azureus a FreeRapid Downloader.