Java vs. Swift

balki

Re:Java vs. Swift
« Odpověď #15 kdy: 28. 04. 2017, 21:51:10 »
Tak to jde vždy, ale nejde udělat dynamické nativně, což je taky to jediné, co jsem tvrdil.

Kefalín, čo si vy predstavujete pod takým slovom "nativně"?


čumil

Re:Java vs. Swift
« Odpověď #16 kdy: 28. 04. 2017, 22:56:34 »
Mám dotaz, jestli máte někdo podobnou zkušenost. Máme relativně velkou aplikaci v Javě, je to webová služba s cca. 5000 požadavky za minutu, která (když to hodně zjednoduším) ukládá data ze senzorů (IoT) do databáze, která se pak na pozadí dále zpracovávají. Máme to na serveru s 24 vlákny a 64GB RAM a vše šlape, jak má. Nedávno někdo přišel s tím, že bude experimentovat se Swiftem. Nevím, jaké frameworky pro Swift existují, kolega použil něco od IBM, a když asi po týdnu skončil, jeho implementace dělá to samé, ale vytížení CPU kleslo ze 40% na asi 5% a náročnost na paměť z 50GB na necelých 8 (12 ve špičce, když se sejde výrazně více požadavků). To vzbudilo mou pozornost, trochu jsem googlil a našel poměrně hodně článků, jak někdo přešel z Javy, node.js nebo Pythonu na Go nebo Rust (Swift ne, ale ve všem ostatním je pozoruhodná shoda), čímž ušetřil 90% prostředků (serverů/času CPU/paměti, liší se článek od článku). Má otázka je, co mají zmíněné jazyky lepšího oproti Javě/node.js apod., že je rozdíl ve výkonu a spotřebě prostředků tak výrazný?
Stačilo mi přečíst 64 gb ram a 5k requests per MINUTE a skončil sem.

Chyba neni v Jave, ani v tracing GC.

Chyba je v idiotech co to psali.

Just for fun... RC je jen jina forma GC ktera se hodi jen někde a jen na něco. Oproti tracing gc ma totiž dost nevyhod.

gll

Re:Java vs. Swift
« Odpověď #17 kdy: 28. 04. 2017, 23:16:18 »
Tak to jde vždy, ale nejde udělat dynamické nativně, což je taky to jediné, co jsem tvrdil.

myslíš něco jako realloc? To nefunguje spolehlivě nikde.


gll

Re:Java vs. Swift
« Odpověď #18 kdy: 28. 04. 2017, 23:23:40 »
Tak se ukaž. Aby to nedopadlo jako s preemptivním schedulingem v Go...

Když překročím velikost, alokuji nové pole dvojnásobné velikosti a to staré do něj překopíruji.

čumil

Re:Java vs. Swift
« Odpověď #19 kdy: 29. 04. 2017, 15:36:02 »
Nepotrebuji 63GB pro garbage collector :)
Aneb slovy klasika (možná Chris Lattner, už nevím): "Tracing GC is a poor man's automatic memory management." Ani vlastně nevím, jestli to je narážka na Android.
ty zboji, jedinej poor man si tady tak možná ty :D


andy

Re:Java vs. Swift
« Odpověď #20 kdy: 29. 04. 2017, 22:00:36 »
Pozerate RSS? Treba pouzit nejake profiling tooliky, pozriet ci nie je prilis casu straveneho v gc, urobit heap dump a pozriet sa cez eclipse memory analyzer v com je problem. Mozno ten heap je prazdny a je zle nastavene GC. Mam taku skusenost, ze takto vyziera heap spracovanie XML (napr SOAP). GC v jave funguje trosku inak ako reference counting, takze s tym ze by si sa dostal na uroven swiftu zabudni. Navyse swift nepotrebuje metaspace a code cache a ine zrace pamate. Na druhu stranu sa tam daju lahko narobit mem leaky.
Inac ten IBM framework (kitura) bol trochu rozozrany, efektivnejsi by mal byt perfect.org.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Java vs. Swift
« Odpověď #21 kdy: 29. 04. 2017, 22:05:50 »
Pozerate RSS? Treba pouzit nejake profiling tooliky, pozriet ci nie je prilis casu straveneho v gc, urobit heap dump a pozriet sa cez eclipse memory analyzer v com je problem. Mozno ten heap je prazdny a je zle nastavene GC. Mam taku skusenost, ze takto vyziera heap spracovanie XML (napr SOAP). GC v jave funguje trosku inak ako reference counting, takze s tym ze by si sa dostal na uroven swiftu zabudni. Navyse swift nepotrebuje metaspace a code cache a ine zrace pamate. Na druhu stranu sa tam daju lahko narobit mem leaky.
Inac ten IBM framework (kitura) bol trochu rozozrany, efektivnejsi by mal byt perfect.org.
Než řešit profiling, to už je lepší použít přímo jazyk, ve kterém to jede svižně.

andy

Re:Java vs. Swift
« Odpověď #22 kdy: 29. 04. 2017, 22:26:02 »
Hej, to urcite bude lacne. Ale mozno je to nejaka mini apka.