• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSBenchmarky programovacích jazyků, knihoven a toolkitů
    RUTHAN
    RUTHAN --- ---
    KING: Jako ono to dava smysl, ale chce to nejaky cisla jaka je rezije a tak. Odecist nejaky 2 timestampy pro nativni a C implementaci a zaplat je to pole a jednou za cas hodit do logu, by nemela byt velka prace..
    KING
    KING --- ---
    RUTHAN: parkrat jsem pouzil osobne Python + nejaky kompilovany jazyk pro kriticke casti a obecne se to pouziva hodne. At uz C (velka cast std knihovny je v C), cython, nebo nove Rust. Za me je to idealni kombinace - rychle si neco napisu v "pomalem" jazyce, pustim si na to profiler abych zjistitl co je nejhorsi cast a tu prehodim do "rychleho" jazyka (spis idealne se podivam po knihovne ktera uz tohle resi).
    RUTHAN
    RUTHAN --- ---
    Ma nekdo zkusenost s tim, ze proste vezme neco v pomaly jazyce a pouzije C++ wrapper pro nejaky pomaly funkce a vola to pres nej jaka je rezije toho wrapperu, jak moc se to vyplati?

    C# to ma asi udelany dobre protoze tenhle unsafe C mod je tam od zacatku officialne.. ale treba Java, Python etc tam to asi takova sranda nebude.
    Jinak pouziva se to i opacne co jsem se bavil s kamaradem, jak rozjed neco v C++ na Androidu, tak tam se opacne prida je nejaka Java obaleni.. a pak pouzije svuj multiplatformni C++ kod. Nicmene tam taky bude nejaka rezije, bud jen pro samotny spusteni.. nebo i pro ten runtime.
    XCHAOS
    XCHAOS --- ---
    AUREL: tohle je skoro přesně to, co jsem hledal.. .stejné algoritmy v různých jazycích, dík...
    AUREL
    AUREL --- ---
    RUTHAN
    RUTHAN --- ---
    WOODMAKER: Ty Python je jeste daleko pomalejsi nez Java, takze vsechno je zlepseni.. Jinak to spusteni Javy - jak mate nastavenou JVM (min, max mem a tak), to muze mit vliv.
    WOODMAKER
    WOODMAKER --- ---
    JANFROG: zatim to je ten posledni problem. Ale diky za tipy.
    JANFROG
    JANFROG --- ---
    WOODMAKER: > Ale spousteni netrva 2 sekundy, ale pul minuty
    A co pouzivate za VM, hotspot? Muzes zkusit J9, pokud vas ta pul minuta stve, startup time se da zredukovat pouzitim AOT).
    WOODMAKER
    WOODMAKER --- ---
    My v praci prepisujeme sw z Pythonu do Javy/springu pri snaze o zachovani logiky. Nedelame to kvuli zvyseni vykonu.
    Zatim je ta Java casto rychlejsi, kdyz uz pracuje. Ale spousteni netrva 2 sekundy, ale pul minuty. Taky je ted velkym zdrzovadlem logovani behem zpracovavani dat. To zvyseni rychlosti jde videt hlavne na uz hotove komponente/docker containeru, kterej zere data ze zdroje a hazi je do Kafky. Na druhe strane kafky je neco, co se stara o zpracovani dat a zapis do Influxdb, to je teprve ve vyrobe, ale obecne se zda, ze knihovny v Jave jsou optimalizovanejsi, nez ty pythonovy.
    XCHAOS
    XCHAOS --- ---
    MARASAN: tak koukám od benchmarků jsme rychle postoupili k optimalizacím a to rovnou k optimalizacím skrz paralelizovatelnost :-) ok, to je fakt už "vyšší dívčí", tam asi hraje roli podíl toho, kolik je fakt počítání (takže se použije více threadů v procesoru) a kolik třeba přístupy do paměti (kde je úzke hrdlo sběrnice)
    MARASAN
    MARASAN --- ---
    nebude to hned, az to zmerim, dam vysledky.
    MARASAN
    MARASAN --- ---
    MARASAN: v RUSTu to mam uplne bez paralelizace.
    MARASAN
    MARASAN --- ---
    XCHAOS: ja hodne pracuju s datama v XML, takze bych udelal neco, co veme gz fajl, 1 XML dokument na radku - ruzny druhy - a tech radku je par milionu na soubor. To bych promeril a muzu to srovnat i s implementaci, kterou mam v RUSTu.
    XCHAOS
    XCHAOS --- ---
    MARASAN: ano, no tak benchmarky masivně paralelizovatelných algoritmů, to je teprve kapitola sama pro sebe. tenhle klub je zatím podle mě někde na úrovni toho, aby si lidi dokázali srovnat aspoň třeba algoritmu na fibonacciho čísla (ne, že by jim byl dobrej k něčemu jinýmu, než k prolezení písemky někde na gymplu) v bashi vs. v PHP v céčku... ale pokud to tu přeskočí na vyšší level, tak jedině dobře!
    MARASAN
    MARASAN --- ---
    XCHAOS: otazka je, jestli to mam masivne paralelizovat, coz je snadny a pouzivam to hodne, anebo se to projevi v sekvencnim zpracovani.
    XCHAOS
    XCHAOS --- ---
    MARASAN: no tak právě proto je potřeba prohnat nějaký vzorový benchmarkový kód oběma variantami a výsledky postnout sem :-)
    MARASAN
    MARASAN --- ---
    DEFILA: tu praci by mel dodat prave JIT.
    DEFILA
    DEFILA --- ---
    MARASAN: bez práce?:)
    MARASAN
    MARASAN --- ---
    Erlang 24 prave prichazi s JITem, RabbitMQ slibuje bez prace az 30% narust propustnosti. Mohl bych protestovat nejaky ulohy mezi verzema.
    RUTHAN
    RUTHAN --- ---
    Uz se "tesim", jak tu nejaky fanatik bude rikat, ze se v Jave, pythonu da psat stejne rychle jako v C. Ano je mozny, extreme narocne tyhle smilaky optimalizovat, ale zadny velka rychla velka vec v tom asi neexistuje, jen nejaky optimalizovany steky.. Byt jsem teda videl nejaky release notes novy verze Javy a byla tam moznost pouzit ASM, ale to predpokladam, driv snad pres nejaky wrappery slo taky..

    Urcite existuje neco lepsiho a meli bychom to postupne datav na nastenku, protoze se to relativne spatne hleda, ale pro zacatek:
    Programming Languages Benchmarks
    https://attractivechaos.github.io/plb/
    https://github.com/kostya/benchmarks
    http://hildstrom.com/projects/langcomp/index.html
    https://thenewstack.io/which-programming-languages-use-the-least-electricity/
    Kliknutím sem můžete změnit nastavení reklam