• ú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: Profiler - ma problem v tom, ze vetsina programatoru, ho minimalne donedavna neumela pouzivat vubec, nevim mozna uz se dneska na skolach uci a ze zbytku vetsina poradne nerozumi jak z jeho vystupy pracovat a pokud se na to nespecializujou, takze to "tupy" zalogovani timestampu a hlidani si sezranyho heapu/cpu na urovni OS rucne ma svoje opodstatneni.

    JANFROG: C# svet z myho pohledu minimalne vic propagoval a pouzivalo se to, podle myho daleko vic, nez jsem videl vsude jinde.. navic na to nebylo potreba stahovat nekde nejaky wrapper, knihovny nejak to lepit. Byl to vpodstatne ekvivalent to ASM v C/C++ , v Java / Python svete tohle podle me zdaleka tak bezny nebylo. . ale samozrejme mohl jsem mit jen "smulu" na to s jakymi informacni prameny jsem prisel do styku.

    C# - ten pocit, ze by si to delalo to chce nemam.. naopak mam pocit, ze se to ladi nejlip, protoze Visual studio, byt je to dneska silenej bloatware se vsema tema obrovkejma SDK kvuli kdyz blbosti. Tim to nechci nejak moc obhajovat, ale nejaky domaci zvykani to staci..
    KING
    KING --- ---
    RUTHAN: jasne, nesmi se to delat kvuli nejakym predpokladum ktere muzou byt (a casto jsou) chybne. Prave proto jsem zminoval ten profiler ktery se pak samozrejme opet pusti na vyslednou hybridni implementaci aby se overilo, zda je efekt skutecny
    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.
    Kliknutím sem můžete změnit nastavení reklam