Java: byte to 8 boolean

Pavel Tisnovsky

Re:Java: byte to 8 boolean
« Odpověď #30 kdy: 11. 03. 2014, 19:47:12 »
TO FILIP JIRSÁK: Java má taktéž GC, což je zpomalení jak prase. Vzhledem k tomu že hello world sežere několik MB, tak prosím nemluv o efektivitě Javy. To zaprvé. A za druhé, jediná a opravdu velká výhoda Javy je v multiplatformnosti. A ta se ztratí když se program nepřeloží do bajtkódu.

Těch dobrých vlastností je tam mnohem víc; od stability a velkého záběru základních knihoven přes automatickou správu paměti až po možnost vzdáleného managementu JVM i samotné apikace; potom samozřejmě taky vlastnosti toho programovacího jazyka, které jsou sice založeny na OOP (což ne vždy je ta správná cesta :-), ale v oblasti staticky typovaných OO jazyků je na tom Java podle mě dost dobře, i přes některé přehmaty vzniklé i tím, že se Gosling až moc snažil zalíbit lidem od céčka :-) [a to říkám jako programátor pracující někdy až hodně low level].


RAII

Re:Java: byte to 8 boolean
« Odpověď #31 kdy: 11. 03. 2014, 19:55:45 »
TO ded.kenedy: To že sežere Java jen tak z podstaty několik mega právě považuju za špatné (teda běhové prostředí, pro hnidopichy). Alokace je skutečně při použití GC velmi rychlá, samotný hledání garbage už ani tak moc ne xDD. GC přeskládává data v paměti, hezký. No, zas takový žůžo to není, když musí takhle překopírovávat sem a tam třeba ... 200 MB či víc...A využití cache? OS používají page coloring, takže tvou prezentovaná výhoda ztrácí na kráse. Pokud netušíš co to je, tak googl. A radši už nepiš, krom vykváknutí z temnoty si toho moc jinýho neukázal xD

RAII

Re:Java: byte to 8 boolean
« Odpověď #32 kdy: 11. 03. 2014, 19:59:07 »
TO PAVEL TISNOVSKY: Souhlasím s Vámi. Kdyby Java neměla žádné výhody, nebyla by tak používaná. Navíc, v dnešní době se na efektivitu kódu zas tak nehledí, je levnější dokoupit komponenty než optimalizovat.

ded.kenedy

Re:Java: byte to 8 boolean
« Odpověď #33 kdy: 11. 03. 2014, 21:10:25 »
Citace
To že sežere Java jen tak z podstaty několik mega právě považuju za špatné

A to, ze operacni system zabira pamet taky povazujes za spatne?

Citace
No, zas takový žůžo to není, když musí takhle překopírovávat sem a tam třeba ... 200 MB či víc..

Realne neni problem, objektu, ktere preziji eden je sakramentsky malo. Uvolnit velky kus pameti a ne se trckat s kazdym kouskem pameti je taky sakramentsky rozdil.

Citace
A využití cache? OS používají page coloring

Tak treba Linux page coloring nema. I tak sance, ze dva objekty spadnou do stejne cache line je u compacting collectoru vetsi nez v pripade malloc/free.

Citace
A radši už nepiš, krom vykváknutí z temnoty si toho moc jinýho neukázal xD

To jsi mi to nandal!

student

Re:Java: byte to 8 boolean
« Odpověď #34 kdy: 11. 03. 2014, 21:12:51 »
To že sežere Java jen tak z podstaty několik mega právě považuju za špatné (teda běhové prostředí, pro hnidopichy).
Dufam, ze nepouzivas to spatne to behove prostredie pre programy nazyvane "operacny system". Ved to ide aj bez neho a usetris par MB v pamati ;-).

GC přeskládává data v paměti, hezký. No, zas takový žůžo to není, když musí takhle překopírovávat sem a tam třeba ... 200 MB či víc..
Sem-tam sa to tak casto nekopiruje - prevazuje kopirovanie "tam". U generaceho garbage collectoru sa vlastne najcastejsie uvolnuje Eden a to dava zmysel.


Pavel Tisnovsky

Re:Java: byte to 8 boolean
« Odpověď #35 kdy: 11. 03. 2014, 21:13:28 »
TO PAVEL TISNOVSKY: Souhlasím s Vámi. Kdyby Java neměla žádné výhody, nebyla by tak používaná. Navíc, v dnešní době se na efektivitu kódu zas tak nehledí, je levnější dokoupit komponenty než optimalizovat.

Nojo je to tak, nijak z toho nadseny nejsem (reseni problemu tim, ze se na nej hodi silnejsi HW a kdyz to nestaci, tak jeste vice HW), na druhou stranu ted vyvoj procesoru s vyssi hodinovou frekvenci trosku zastavuje a spis se pridavaji jadra - takze to zase je z vyvojarskeho hlediska zajimave, muzeme si hrat s multiprocessingem na ruzne urovni a neni to (aspon na par nejblizsich let) jen bezduche lepeni komponent dohromady :)

RAII

Re:Java: byte to 8 boolean
« Odpověď #36 kdy: 11. 03. 2014, 21:59:19 »
TO PAVEL TISNOVSKY: Je to tak. Osobně velmi rád studuji různé experimentální architektury s mnoha jádry. Třeba Epiphany. Více jader je budoucnost, frekvenci není tak snadné šroubovat nahoru, a pak to navíc pekelně žere (a hřeje).
To DED.KENEDY: No, ty asi budeš ňákej zhrzenej Javista, kterej není ochoten akceptovat že jeho java není rychlejší než světlo ... až si rozšíříš obzory, přijď.
TO STUDENT: Radši běž studovat, potřebuješ to...zřejmě si nepochopil smysl diskuze a to co chci říci.

Re:Java: byte to 8 boolean
« Odpověď #37 kdy: 11. 03. 2014, 23:43:42 »
To že sežere Java jen tak z podstaty několik mega právě považuju za špatné
Když plus mínus tu samou paměť sežere běhové prostředí C/C++ (základní knihovny), tak to za špatné nepovažujete?

Java má taktéž GC, což je zpomalení jak prase.

Nejdřív jste tvrdil, že je Java pomalá, protože je interpretovaná. Když jste byl usvědčen z omylu, zkusil jste něco jiného. A zase špatně. Například GC používá i spousta aplikací napsaných v C nebo C++. Dále existují různé způsoby, jak GC implementovat, jenom v JVM od Oraclu je jich implementováno několik. Výkon GC také závisí na tom, jak programátor s pamětí zachází. Takže opět, to, že něco má GC, nevypovídá vůbec nijak o rychlosti aplikace - může být kvůli špatnému GC a špatnému programu velmi pomalá, a taky může být díky dobrému GC a dobrému programu rychlejší, než aplikace s ruční správou paměti.

Zatím tu prezentujete jen pověry. A ve výsledku není rozdíl, zda programátor napíše program neefektivně kvůli tomu, že si neumí dohledat efektivní řadicí algoritmus, nebo kvůli tomu, že věří pověrám.

Natix

Re:Java: byte to 8 boolean
« Odpověď #38 kdy: 12. 03. 2014, 00:21:57 »

RAII

Re:Java: byte to 8 boolean
« Odpověď #39 kdy: 12. 03. 2014, 15:49:59 »
TO FILIP JIRSÁK: No, takže, standardní C++ knihovny opravdu nesežerou MB RAMky...To jen tak pro pořádek. Nebyl jsem usvědčen z omylu, jen sem neměl energii reagovat na ty marný kraviny xD Takže, Java je pomalá protože je interpretovaná (jasně, používá JIT překlad no a?) a má GC. A prosím, nekecej nic o JIT překladači. Je jedno že se na začátku kusy programu přeloží, furt je to zpomalení oproti nativnímu kódu. A GC? Prosimtě, naprogramoval si někdy něco bez GC? Asi ne. Tak nekecej, jinak by ses totiž nesnažil tvrdit že "voda je suchá"(obrazně řečeno) xD. Jinak pěknej obrázek trola, sedí na tebe xD.

RAII

Re:Java: byte to 8 boolean
« Odpověď #40 kdy: 12. 03. 2014, 15:52:57 »
Ano, je možné i v C++ používat GC, ale není to nutné (ani implicitní), v Javě ano...

Re:Java: byte to 8 boolean
« Odpověď #41 kdy: 12. 03. 2014, 16:18:56 »
No, takže, standardní C++ knihovny opravdu nesežerou MB RAMky...
Kolik tedy sežerou? A kolik sežere třeba Oracle Java SE Embeded? Určitě to víte, když jste takový odborník.

Takže, Java je pomalá protože je interpretovaná (jasně, používá JIT překlad no a?) a má GC.
Aby tohle tvrzení platilo, musel byste nejprve dokázat, že:
  • Java je interpretovaná
  • Interpretace nebo JIT překlad znamená zpomalení proti nativnímu kódu
  • GC znamená zpomalení
Přeju hodně úspěchů při dokazování, zatím se to nikomu nepodařilo.

Jinak pokud je podle vás interpretace, JIT nebo GC taková brzda, proč nekritizujete také ostatní programy, které tyhle techniky používají? Třeba Linuxové jádro, tam musejí být některé části také hrozně pomalé, když používají GC nebo interpret.

Prosimtě, naprogramoval si někdy něco bez GC? Asi ne.
Zase vedle.

perceptron

Re:Java: byte to 8 boolean
« Odpověď #42 kdy: 12. 03. 2014, 16:40:52 »
Citace
Takže, Java je pomalá protože je interpretovaná (jasně, používá JIT překlad no a?) a má GC.
java je pomala

a) v porovnani s cim?
b) pri akych konkretnych problemoch?

podlesh

Re:Java: byte to 8 boolean
« Odpověď #43 kdy: 12. 03. 2014, 19:17:47 »
No vážně, co blbnete? Samo o sobě je to téma dost kontroverzní a málokdy vede k něčemu, ale pokoušet se diskutovat s někým kdo začne házet osobní invektivy hned při první náznaku kritiky, to je fakt jen otravování ovzduší.

RAII

Re:Java: byte to 8 boolean
« Odpověď #44 kdy: 12. 03. 2014, 23:20:59 »
TO FILIP JISÁK:
1) Hello world sežere v C++ 156 KB. Java SE Embedded? Nepoužívám, nejsem schopen říci kolik bere paměti.
2) Musel bych dokázat zpomalení? xD Důkaz je skoro každá aplikace napsaná v Javě xDD
3) Radši nic, nebo bych zas hodil nějakou osobní invektivu xD ...