• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    XCHAOS
    XCHAOS --- ---
    REDGUY: no to je skutečně blbost, kopírovat do 8 znakového bufferu 8 znaků + ukončující nulu, to sis všiml dobře.

    s tou Javou je možné, že to testovali někdy historicky.
    REDGUY
    REDGUY --- ---
    HAHAHAHAHAHAHAHAHA.

    A je to cim dal tim lepsi.

    Jsem si rekl, ze si pro srovnani pustim tu Ceckovou verzi. A dobre jsem udelal, protoze, jak se rika, hilarity ensued 8))

    V prvni rade, kod toho cloveka je plnej bugu. Zvlastni zes to nezminil, XChaosi, kdyz jsi psal jak se ti ten test libi, jak pouziva low-level funkce... cim to, zes nezminil pitomosti jako je tahle:
    char *str=malloc(8);
    strcpy(str,"abcdefgh");
    


    A to je jen jedna z nekolika. Pokud to nekde fungovalo, tak jen nahodou.

    Tak jsem to ofixoval, pustil... no, a bezi to DVAKRAT POMALEJC nez ta moje java.

    HAHAHAHAHAHAHAHAHA.

    Jak jsi to rikal, XChaosi? " zatímco Java a JavaScript jsou v tomhle směru totálně LOL. "? 8))))) No... "LOL" 8)
    REDGUY
    REDGUY --- ---
    REDGUY: LOL, jsem idiot, mel jsem tam bugu. Po jejim opraveni je javova verze JEDENACTKRAT rychlejsi nez verze toho trumbery co psal ten clanek.
    REDGUY
    REDGUY --- ---
    XCHAOS: samozřejmě obecné povědomí, že Java je pomalé monstrum, ale takovéhle srovnání a tedy i míra toho, jak je to v té Javě asi udělané špatně, stejně zovu překvapí... - ale prdlajs. Jestli neco prekvapi, tak to, ze porad jeste nekdo povazuje podobny nanobenchmarky za uzitecny. Jeste vic prekvapi, ze nekdo povazuje za uzitecny nanobenchmarky, ktery zjevne psal nekdo, kdo treba o ty Jave fakt moc netusi, protoze kdyz jsem ten kod opravil aby pouzival standardni StringBuffer misto String (fix na asi ctyri radky), tak to najednou bezelo trikrat rychlejc a zralo zlomecek pameti. Co ale neprekvapi je, ze XChaos, kterej o Jave vi kulovy, z takovejch nesmyslnejch nanobenchmarku vyvozuje hluboky zavery o tom, jak "je to v ni udelany spatne" 8))))
    XCHAOS
    XCHAOS --- ---
    KOJA: tak mě se to naopak hodně líbí. na práci se stringama je zajímavé to, že většina vyšších jazyků k tomu nabízí spoustu operací, u kterých předstírá, že jsou triviální - ale samozřejmě nejsou.

    KOJA: tak každý jazyk přece nabízí nějaké standardní způsoby práce se základními datovými typy/objekty, mezi které stringy zcela nepochybně patří. nepokládat implementaci stringové knihovny ve stdlib za základní feature jazyka je dost odvážné :-)

    C++ nedopadlo tak zle - ale je velká otázka, zda nějakou abstrakci nad stringy jde vůbec naprogramovat úplně čistě (asi jde, když ten Perl dopadá tak dobře, jak dopadá).

    jejich implementace v C trochu švindluje, protože právě pracuje se stringy jako s mutable a je to právě level, na kterém když se stringy pracují začátečníci, tak spolehlivě vyprodukují děravý kód (což je hlavní příčina všech bezpečnostních děr na bázi buffer overrunů, apod.).

    jinak v Pythonu i Perlu používají volání regulární výraz, zatímco v Céčku primitivnější strstr() a pak přímo přepisují string, což třeba zrovna v tom Pythonu s immutable stringy z pricnipu nejde.. takže je to vlastně demonstrace toho, že low-level práce se stringy je rychlejší, než většina vyšších abstrakcí, která musí stále znovu dokola alokovat prostor pro výsledek stringové operace. Samozřejmě je ale otázka, jestli lidi fakt vést k tomu, aby pro modifikace stringů používali memcpy().. jenže když budu chtít mít jistotu, že něco poběží fakt rychle, tak to sám udělám přesně takhle...

    Mě se ten test fakt líbí, ne proto, že C "porazilo" C++ (protože ta C implementace je až moc lowlevel a samozřejmě takhle nikdo nechceme programovat každodenní práci se stringy, zvlášť kdo to fakt nějaký čas z nějakého důvodu musel dělat) - ale spíš že C++, Perl, Python i PHP to víceméně dělají nějak "dobře", z hlediska rychlosti i spotřeby paměti, zatímco Java a JavaScript jsou v tomhle směru totálně LOL.

    Zajímavé je, jak málo lidí si tohle uvědomuje, existuje samozřejmě obecné povědomí, že Java je pomalé monstrum, ale takovéhle srovnání a tedy i míra toho, jak je to v té Javě asi udělané špatně, stejně zovu překvapí...
    KOJA
    KOJA --- ---
    GIOMIKY: Me tohle obecny porovnavani jazyku na jedny specificky uloze prijde nic nerikajici. Pominu, ze je to "velmi stary" benchmark (Intel Core2 Duo T7500 a kernel 2.6.32).

    Vhled mam velmi omezeny, nicmene z kodu kterym meri "vykon" toho g++ na mi prijde, ze to moc dobre nedela. V komentarich mu tam nekdo radi upravy, ja bych mel ke kodu poznamek i par dalsich (neflushovat ostream buffer napr.). Dale postradam treba i zpusob jakym ten kod preklada (optimalizace, vyjimky zapnute?), coz neni uplne zanedbatelne. Vzhledem k tomu co tam dela, tak konkretne pro c++ nemeri zadne zasadni vlastnosti jazyka ale rychlost implementace std::string, std::ostream (a defaultni alokator pameti) v libstdc++. Zrovna stringy a streamy jsou ale veci ktere se pro "performance critical" kod v c++ nepouzivaji moc casto (resp se pro souvisejici praci nesaha po c++ kvuli vykonu), takze interpretace srovnani je stran c++ trochu slozita.

    Celkem bych cekal, ze pokud jsou opominuty jemnejsi nuance c++, tak u ostatnich jazyku to bude podobne (lidi co maji v hlave detaily ohledne 10 ruznych jazyku zase tak moc po svete behat nebude) a porovnava vhodnost jablek a hrusek do knedlo vepro zela.
    GIOMIKY
    GIOMIKY --- ---
    Porovnani programovacich jazyku z pohledu rychlosti a vyuziti pameti
    http://raid6.com.au/~onlyjob/posts/arena/
    BURAN
    BURAN --- ---
    Asi embedded systemy.
    XCHAOS
    XCHAOS --- ---
    VITEX: .. zatímco obliba čistého assembleru roste, srsly? :-)
    VITEX
    VITEX --- ---
    Programovací jazyk C má nejnižší oblíbenost v TIOBE za posledních 15 let - Root.cz
    http://www.root.cz/zpravicky/programovaci-jazyk-c-ma-nejnizsi-skore-v-tiobe-za-poslednich-15-let/
    XCHAOS
    XCHAOS --- ---
    UETOYO
    UETOYO --- ---
    XCHAOS: :) Ok
    XCHAOS
    XCHAOS --- ---
    UETOYO: klid... v té debatě to právě dost zpochybňují/rozporují, někteří i celkem vtipně :-)
    XCHAOS
    XCHAOS --- ---
    JANFROG: on to ale není vtip, to je to nejhorší... mě to tu někdo do mého makrojazyka právě navrhoval, ať rekurzivní rebalancovací funkci posílám delta pointerů začátku a klíče jako integer... já to nejdřív nechápal, ale po letech se mi rozsvítilo.

    everything is integer (unless stream of bytes :-)
    JANFROG
    JANFROG --- ---
    XCHAOS: Ted jsem se fakt zasmal...ale ti, co to pak dostanou na talir se asi smat nebudou :-)
    XCHAOS
    XCHAOS --- ---
    Mohli bychom na youtube začít točit show "programujeme v C s Babicou"? :-) když nemáš pointer, vraž tam integer? :-)
    ANT_39
    ANT_39 --- ---
    ALMAD: Severan jako severan.
    ALMAD
    ALMAD --- ---
    ...a kdyz nemas Torvaldse, tak tam dej Lerdorfa, vono ti taky vznikne neco v Ccku, takze je to vlastne stejny ;)
    Kliknutím sem můžete změnit nastavení reklam