Čas:31.3.2010 22:29:58
Od:Mi.Chal.
Předmět:Vtip se moc nepovedl
Proč když "tento článek byl publikován 1. dubna", tak se zobrazuje už 31.3.? :-). Jinak nějaké takové srovnání by zajímavé být třeba mohlo, ale jedna verze s double a jedna ve fixed point.
Čas:1.4.2010 11:01:50
Od:Zdeněk Troníček
Předmět:Re: Vtip se moc nepovedl
Pokud si tento clanek prectete jindy nez na aprila, tak snad v nem najdete nejakou informacni hodnotu. Nevite-li kde hledat, zkuste si zdrojaky prelozit a spustit.
Čas:1.4.2010 12:48:19
Od:Jarda
Předmět:Re: Re: Vtip se moc nepovedl
Neco podobneho jsme ze srandy resili v praci.. pri debate nad optimalizaci ++i a i++ v cyklu v C++. Pred mnoha lety... (compilator VS 2003, posledni verze jsem nezkousel, ale proc ne :) ) Takze jsme napslai kod, co volal 3 funkce ktere postupne (vzajmene (rekurentne)) nascitavaly vysledek. Po kompilaci se vsema optimalizacea... vypadal cod v ASM nejak takto MOV EAX, vysledek... Takze veskera debata nad optimalizaci ++i a i++ skoncila, neb kompilator to rozpoznal a misto volani funkci, ktere produkuji konstatni vysledek je rovnou vratil ... Takze debata nad C++ a Javou a C# .. ano .. jsem milovnik C# a Javy .. ale optimalizace C++ do binarky me proad prijde asi nejlepsi. Co vim, tak C# je prelozen takrka bez optimalizaci do IL. Otazkou jak moc probiha nejaka post optimalizace pote... s IL ci bytecodem... kterou ocekvam. Asi by stalo za prozkoumani.
Čas:1.4.2010 13:47:54
Od:IA
Předmět:Re: Re: Re: Vtip se moc nepovedl
Kdyz se javovy kod pusti s java -server tak JIT v tomto pripade udela docela podrobnou analyzu - umi inlinovat funkce, vyhazovat cykly ktery nic nedelaji atd. Vzhledem k tomu, ze JIT ma vic informaci nez C kompilator, tak je pak realne, ze je java rychlejsi nez C. Samozrejme ale zalezi od pripadu.
Čas:1.4.2010 13:58:00
Od:Jarda
Předmět:Re: Re: Re: Re: Vtip se moc nepovedl
OKi diky za info. Dalsi duvod proc mit Javu jeste radei :)
Čas:1.4.2010 13:58:05
Od:Jarda
Předmět:Re: Re: Re: Re: Vtip se moc nepovedl
OKi diky za info. Dalsi duvod proc mit Javu jeste radei :)
Čas:1.4.2010 14:12:30
Od:Jarda
Předmět:Re: Re: Re: Re: Vtip se moc nepovedl
Jeste dotaz, neni nekde pekny odkaz s popisem optimalizaci v JIT. Co se deje, analyza, atd... tipuji, ze uz nekdo googlil, ci dela u SUN a ma nejake info. Docela by to byla zajimava vec na prcteni .. a ulozeni do schranky v pameti. => Nekdy vzivote jsem tusil .. a vim kde to hledat ... Diky
Čas:1.4.2010 14:35:34
Od:IA
Předmět:Re: Re: Re: Re: Re: Vtip se moc nepovedl
Dost hutne info na blogu cloveka, ktery delal (aspon myslim) na SUN JIT: http://blogs.azulsystems.com/cliff/ A zkusenosti s implementaci vytizeneho serveru v jave: http://mailinator.blogspot.com/ Na to jsem narazil v posledni dobe, jinak obecnejsi veci treba tady a na linkovanych strankach http://en.wikipedia.org/wiki/Java_performance Obcas se da vygooglit docela stavnaty dokument s podrobnostmi, ale to uz necham na vas
Čas:2.4.2010 13:03:41
Od:Maaartin
Předmět:Re: Re: Re: Vtip se moc nepovedl
To ++i a i++ je jedno, kdyz i je int, pokud i je iterator, tak to muze byt dost rozdil, postincrement znamena vytvorit kopii. Samozrejme to nekdy nekde prekladac muze zoptimalizovat, a nejspis to i udela, ale doporucuje se psat radsi ++i. Ja to tak pisu vzdycky - i kdyz jsem C++ uz dlouho nevidel a ze zacatku mi to bylo proti srsti, je to jen o zvyku.
Čas:1.4.2010 11:10:05
Od:goddard
Předmět:?!
while (d < 10000000.0) wtf is this s*** i don't even know
Čas:1.4.2010 14:10:32
Od:Jiri Benes
Předmět:dalsi vysledek
SUN: C empty loop: 2312ms time: 6233ms empty loop: 2304ms time: 6262ms
Čas:2.4.2010 21:48:52
Od:Miloslav Ponkrác
Předmět:Další zfalšovaný test
Další zfalšovaný test. Proč C testují Ti, kteří ho neumí a evidentně se o rychlost nikdy nezajímali? První bota: použití gcc. Gcc je překladač s velmi mizernou optimalizací, tedy dosti špatně optimalizující výsledný kód. Jinak řečeno, donré kompilátory generují v řadě případů o desítky procent rychlejší, ale sem tam (pokud dáte možnost generovat delší úseky kódu) i o stovky procent. To je jako testovat mrzáka s trochu chromou nohou (Javu) s beznohým (gcc) ohledně rychlosti v běhu. Napochybuji, že Java obsahuje kvalitní optimalizace v JIT. Proč nepostavíte vedle Javy dobře optimalizující kvalitní C/C++ kompilátor a nechte ho přepínači nastavit plnou zbroj v optimalizaci? Microsoft Visual C/C++ je kvalitnější kompilátor, než gcc – o trošku a rozdíl se s časem zvětšuje v neprospěch gcc. Je to vidět, že na rozdíl od gcc i více reaguje na použití různých optimalizačních přepínačů. Intel C/C++ kompilátor je ještě mnohem kvalitnější. Na různé přepínače kompilace reaguje velmi velkými rozdíly ve výstupu. Dostat z něj mnohem rychlejší kód, než z Microsoft Visual C/C++ není problém. Kdyby nebylo gcc, tedy nekvalitně optimalujícího C kompilátoru, žádného javistu by ani nenapadlo kdy tvrdit, že Java je rychlejší, než C. Nechcete testovat něco, čemu rozumíte?
Čas:4.4.2010 22:43:18
Od:Zdeněk Troníček
Předmět:Re: Další zfalšovaný test
Jste uplne vedle. Toto neni zfalsovany test, protoze to neni test zadny. Vysvetleni se dozvite v dalsich clancich na tomto blogu. Mezitim si Vam dovolim polozit par otazek: z ceho usuzujete, ze neumim C? Ktery z Vami doporucovanych prekladacu je free a preklada pro Solaris a SPARC? I kdyz gcc mozna nema nejlepsi optimalizace, v unixove komunite patri k nejpouzivanejsim a proto je jeho pouziti v testech opodstatnele. A proc jsem u gcc nepouzil zadne prepinace? Jak uz jsem psal, nejde o test. Jde o aprilovy clanek.
Čas:4.4.2010 11:06:36
Od:vlado
Předmět:nieco do predsa en dokazuje
Test predsa len nieco dokazuje a sice ze pre clovek ktory neovlada c jazyk (co je dnes uz drviva vacsina ludi) je ovela lepsie pouzivat javu :)
Čas:4.4.2010 15:07:52
Od:Miloslav Ponkrác
Předmět:Re: nieco do predsa en dokazuje
Samozřejmě, pokud něco neovládáte, tak se to buď naučte, a nebo jděte od toho. A držte se svého kopyta – a nedělejte testy, když tomu nerozumíte.
Čas:4.4.2010 15:17:53
Od:Miloslav Ponkrác
Předmět:Problémy testů od Javy
Problém je zase ten, že když přijdu na složitější testy dělané javisty, tak se většinou podívám na zdrojový kód v C, nebo C++, který javista postavil proti javovskému a bez problémů ho často přepíšu C/C++ kód na výrazně rychlejší verzi. V C/C++ verzi se často vyskytují javovské obraty, kterým říkám „javoviny“, a nejsou používány přirozené C/C++ konstrukce. Dále problém je, že javisté si vůbec neuvědomují kvalitu C/C++ kompilátorů, ani obrovskou závislost těchto kompilátorů na přepínačích volby kompilace. Není problém „dokázat“ pro javistu, že java je rychlejší, než C/C++, a také to řada testů „dokázala“. Dokonce jsem viděl i testy, co „dokázaly“, že Java je rychlejší, než stroják. Stejně tak jako dotazovací agentury dokáží před volbami „nestranně“ zjistit, kterou stranu budou lidé volit. Jakýkoli test, který by dokázal, že Java je rychlejší lze považovat bez problémů za špatně provedený. Jinak něco málo o tom jsem napsal zde: http://www.abclinuxu.cz/blog/miloslavponkrac/2005/12/existuje-seriozni-srovnani-rychlosti-javy-a-c-cplusplus
Čas:4.4.2010 23:12:10
Od:Zdeněk Troníček
Předmět:Re: Problémy testů od Javy
Mozna, ze nekteri javiste pisou v C javoviny. To, co pisete Vy, jsou ovsem jaloviny. Viz Vas clanek na abclinuxu: "První dogma zastánců Javy je o tom, že Java je nejvíce (případně nejlépe) objektově orientovaný jazyk, který existuje." - kolik takovych zastancu Javy znate? Nebo diskuze pod clankem: "A taky proto, že dvoustupňová kompilace Java -> byte kód a pak JIT kompilace byte kód -> strojový kód musí být alespoň o pár procent méně efektivní, než přímá kompilace C++ -> strojový kód." - skutecnost je takova, ze JIT ma pri kompilaci k dispozici behove informace, ktere muze vyuzit pri generovani kodu. Je to asi jako kdybyste pred prekladem ceckovym prekladacem prohnal program profilerem. V dusledku toho pak muze JIT optimalizovat vice nez staticky kompilator. Nebo dalsi blud: "Kromě toho je Java víc zaměřená na přenositelnost, což stojí další rychlost." Takto bych mohl pokracovat, ale protoze to sem nepatri, uvedu uz jednu citaci. Je to perla: "Po mnoha letech praxe a zkušenostech se domnívám (a věřím, že mnozí mu budou oponovat), že rychlost vývoje v Javě i v C++ je zhruba srovnatelná."
Čas:5.4.2010 21:16:50
Od:Jakub D.
Předmět:Re: Re: Problémy testů od Javy
Haha, pan Ponkrac vali. Mozna ho pozvu jako komika na nas podnikovy vecirek. Trochu mi to pripomina, jak jeden vyvojar v rozhovoru Qt poznamenal neco o tom, ze Java je interpretovana, nacez jsem si pomyslel, ze ten chlap by mel vratit svuj diplom. Jinak dobra prace, pane Tronicku!
Čas:5.4.2010 21:18:46
Od:Jakub D.
Předmět:Re: Re: Re: Problémy testů od Javy
Pardon, ma tam byt "Trochu mi to pripomina, jak jeden vyvojar Qt v rozhovoru poznamenal..."
Čas:9.4.2010 13:49:49
Od:Karel
Předmět:Re: Re: Re: Problémy testů od Javy
Posílám Vám odkaz na informace aby jste ze sebe příště nemusel dělat komika Vy. http://cs.wikipedia.org/wiki/Java_%28programovac%C3%AD_jazyk%29 interpretovaný – místo skutečného strojového kódu se vytváří pouze tzv. mezikód (bajtkód). Tento formát je nezávislý na architektuře počítače nebo zařízení. Program pak může pracovat na libovolném počítači nebo zařízení, který má k dispozici interpret Javy, tzv. virtuální stroj Javy - Java Virtual Machine (JVM). V pozdějších verzích Javy nebyl mezikód přímo interpretován, ale před prvním svým provedením dynamicky zkompilován do strojového kódu daného počítače (tzv. just in time compilation - JIT). Tato vlastnost zásadním způsobem zrychlila provádění programů v Javě ale výrazně zpomalila start programů. V současnosti se převážně používají technologie zvané HotSpot compiler, které mezikód zpočátku interpretují a na základě statistik získaných z této interpretace později provedou překlad často používaných částí do strojového kódu včetně dalších dynamických optimalizací (jako je např. inlining krátkých metod atp.).
Čas:10.4.2010 8:39:22
Od:PH
Předmět:Re: Re: Re: Problémy testů od Javy
Ponkrác tomu nerozumí, tyhle voloviny píše po internetu všude. Je to takový Brouk Pytlík :-)
Čas:6.4.2010 9:18:23
Od:Švarcik
Předmět:Povedený vtípek
I když článek nebyl publikován na apríla, tak se vtípek rozhodně povedl - takovýchto srovnání je na netu hafo, ale vypovídající hodnota je bohužel mizivá. Nedávno jsem se touto problematikou chvílu zabýval a narazil jsem na zajímavý blog, který tyto technologie porovnává trochu z širšího pohledu. Článek začíná hned i se stručnou odpovědí na toto téma: Is Java faster than C/C++? The short answer is: it depends. http://blogs.azulsystems.com/cliff/2009/09/java-vs-c-performance-again.html
Diskuzní příspěvky
Mi.Chal. Vtip se moc nepovedl
Zdeněk Troníček   Re: Vtip se moc nepovedl
Jarda   Re: Re: Vtip se moc nepovedl
IA   Re: Re: Re: Vtip se moc nepovedl
Jarda   Re: Re: Re: Re: Vtip se moc nepovedl
Jarda   Re: Re: Re: Re: Vtip se moc nepovedl
Jarda   Re: Re: Re: Re: Vtip se moc nepovedl
IA   Re: Re: Re: Re: Re: Vtip se moc nepovedl
Maaartin   Re: Re: Re: Vtip se moc nepovedl
goddard ?!
Jiri Benes dalsi vysledek
Miloslav Ponkrác Další zfalšovaný test
Zdeněk Troníček   Re: Další zfalšovaný test
vlado nieco do predsa en dokazuje
Miloslav Ponkrác   Re: nieco do predsa en dokazuje
Miloslav Ponkrác Problémy testů od Javy
Zdeněk Troníček   Re: Problémy testů od Javy
Jakub D.   Re: Re: Problémy testů od Javy
Jakub D.   Re: Re: Re: Problémy testů od Javy
Karel   Re: Re: Re: Problémy testů od Javy
PH   Re: Re: Re: Problémy testů od Javy
Švarcik Povedený vtípek