|
[ bmcvetic @ 27.02.2006. 00:58 ] @
| Kolika je stvarno razlika u brzini (iste, koliko je to moguće) aplikacije koja je pisana u C++ i u Javi koja se izvršava na JRE i koja je kompajlirana HotSpotom recimo.
Kolika je razlika u konzolnim i GUI programima?
Samo me zanima... Tj. da li će brzi razvoj hardvera tu razliku sveti na minimum?
Pozdrav |
[ x VITA x @ 27.02.2006. 09:17 ] @
koliko ja znam razlika je oko 4 puta...ali to je sve ukupno vreme rada programa sa sve ucitavanjem (koje kod jave traje duze jer ima milion provera i ucitavanje cele jvm i sl.)
a u nekom testu sam gledao da je deo programa koji izvrsava neku operaciju samo 2 puta sporiji... (uporedjivao je vremena kad su programi pokrenuti i onda pritisne enter i krenu da rade neku zahtevniju operaciju)
hardware ce to totalno da baci u drugi plan (vec je to manje bitno)
+ u javi se mnogo jednostavnije programira jer nema zezanja sa npr destruktorima i sl
+ java ima mnogo jednostavnije visenitno programiranje a to je jako bitno posto svaka ozbiljna serverska aplikacija ima posebne niti za svakog klijenta...
[ obucina @ 27.02.2006. 09:47 ] @
@bmcvetic
Raketa prema pešaku. Tj, jedan od najbržih prema jednom od najsporijih.
Hardver, koliko god bio brz ne može svesti na minimum operaciju koja se u Javi izvrši za 6 a u C++ za 3 takta procesora. Svaki (polu)interpretiran jezik, kao sto je Java, .NET jezici, skript jezici i sl, ne moze brzinski da priđe ni najgorem native kompajleru. Native kompajelri imaju veći, da tako kažem, NI (stepen korisnog dejstva, iz fizike).
@x VITA x
Ozbiljna serverska aplikacija u Javi? Java sigurno ima raznih primena, ali ovo je polje od koga treba podalje da se drži i da ga prepusti alatima koji mogu na efikasan način da izađu u susret postavljenim zahtevima.
[ mucky @ 27.02.2006. 09:54 ] @
Citat: obucina
Ozbiljna serverska aplikacija u Javi? Java sigurno ima raznih primena, ali ovo je polje od koga treba podalje da se drži i da ga prepusti alatima koji mogu na efikasan način da izađu u susret postavljenim zahtevima.
Da li bi mogao da nam predochish koji bi to alati bili, zashto su bolji od Jave na polju 'serverskih aplikacija', i ko to (osim tebe) tvrdi?
[ Java Beograd @ 27.02.2006. 12:38 ] @
Citat: obucina: Ozbiljna serverska aplikacija u Javi? Java sigurno ima raznih primena, ali ovo je polje od koga treba podalje da se drži i da ga prepusti alatima koji mogu na efikasan način da izađu u susret postavljenim zahtevima.
Šta reći ? Forum trpi sve !
[ caboom @ 27.02.2006. 14:22 ] @
hm... postoji mnogo mitologije oko jave i njenih performansi i vecina tih mitova se vuku od ranih dana jave, a situacija se drasticno promenila tokom godina pogotovo posle (davnasnje) pojave JIT kompajlera. licno mislim da najveci problemi sa javom leze u nemogucnosti fine kontrole nad memorijom (mac sa dve ostrice...), a ne u brzini - vidjao sam veoma zanimljive efekte pri veoma intezivnim operacijama sa memorijom i jasne limite do kojih je moguce tweak-ovati GC, sa druge strane greska je cesto u arhitekturi resenja, a ne u "sporosti" jave.
elem:
http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf_p.html
http://www-128.ibm.com/developerworks/ibm/library/i-gctroub/
kao i:
http://kano.net/javabench/
poenta je: da, dobro dizajniran i optimizovan c++ kod je cesto brzi sa manjim memory footprint-om od ekvivalentnog java koda, ali dobitak na performansama cesto ne opravdava vecu cenu i vreme development-a.
[Ovu poruku je menjao caboom dana 27.02.2006. u 15:24 GMT+1]
[ Dragi Tata @ 27.02.2006. 15:04 ] @
Sve zavisi. Recimo, dinamičko alociranje memorije ume da bude dosta brže kod Jave, a i IO je često brži nego kod C++ standardne biblioteke. Problem je, kako caboom reče, što je memory footprint kod Java programa generalno veći, a to u praksi usporava aplikacije. Takođe, Java je više "dinamički" jezik nego C++ i ima lepe mogućnosti kao što je refleksija, ali to se plaća performansama.
Za serverske aplikacije, Java je često povoljniji izbor. GC se brine ne samo o "curenju memorije" (koje je uostalom lako detektovati i ispraviti i u C++ programima), već i o fragmentaciji memorije, što ume da bude mnogo gori problem.
[ caboom @ 27.02.2006. 15:49 ] @
huh, da - slazem se u potpunosti, fragmentacija - vecita borba coveka i alokatora, zahvaljujuci mojoj gluposti i naivnosti mi je priredila mnoge sate zabave. ono sto mene brine kod jave jeste da kod memorijski intenzivnih aplikacija (npr. stotine hiljada trade objekata koji prolaze i bivaju generisani) GC ume da se ponasa veoma nepredvidivo, cak i posle mnogo optimizovanja i profiling-a, i u sustini nedovoljno efikasno do trenutka kada aplikacija alocira previse memorije i (pametan) operativni sistem ubije takvu aplikaciju koja ugrozava rad kompletnog sistema. u takvim slucajevima je najbolje promeniti arhitekturu i uslove zbog kojih dolazi do takvog ponasanja. mislim da gro problema sa javom zapravo proizilazi iz lose arhitekture resenja, mada bi ovaj stav mozda mogao da se generalizuje na bilo koji aspekt sw development-a.
takoreci, there is no silver bullet (NSB).
[ neetzach @ 27.02.2006. 15:51 ] @
Ili staviti vise memorije
[ caboom @ 27.02.2006. 15:55 ] @
ili postati pointy-haired boss (PHB). ;)
[Ovu poruku je menjao caboom dana 27.02.2006. u 17:07 GMT+1]
[ Au197/79 @ 27.02.2006. 16:09 ] @
Ne postoji kompajiranje HotSpotom. To je samo način izvršanja programa gde se bajtkod interpretira a samo uska grla koja se u toku interpretacije primete odlaze na kompajliranje. Time je uzeto najbolje od interpretacije i kompajliranja (brzina, dimamičko učitavanje koda) a poništene loše osobine (sporost interpretacije pojeinh delova i sporost statičkog kompajliranja svih klasa odjednom iako se možda kod neke klase ili njeni delovi neće ni korisniti).
Java se u sirovom izvršavanju još davno približila brzini od 2 x C++. Pri samoj alokaciji memorije java je brža za nekoliko desetina procenata od najbrže implementacije maloc funkcije u C-u, a alokacije je u nekim primenama programiranja zaista stvar koju program najviše radi. Java je spora u SWING gui aplikacijama, ali tu možda 4 puta. I za to postoji lek u vidu SWT-a, mada je sa današnjim hardverom to nepotrebno.
Onde gde C++ mnogo veću prednost nad javom nego što je to u brzini je u količini memorije koju koristi, ali po strašnoj ceni da se programer sam brine o upravljanju memorijom (mada postoje biblioteke za Garbage collection u C++, ali se tada prednost C++ topi).
E sad pogledajmo ovo sa stanovišta najvažnije stvari na svetu $$$. Java je mnogo produktivniji jezik. Mnogo se lakše i brže nešto isporgramira i to što se isprogramira je u startu sa mnogo manje grešaka. Ne samo to. Najveći troškovi su u održavanju. A tu je java u ogromnoj prednosti. Kod joj je manji pa je lakši za održavanje, nalaženje problema je lakše, mnogo stvari je u standardnoj biblioteci pa se lakše nalaze odogovori, izvorni kod i bajtkod je ublavnom portabilan tj. radi na svim platformama za koje se može naći VM...
Evo izveštaja Informatičkog fakulteta u Karsruhe gde su empirijski istaživali razliku C, C++, Java i skript jezika (Perl, Python, TCL...). Istraživanje je rađeno 1998:
Citat: 6 Conclusions
The following statements summarize the findings of the comparative analysis of 80 implementations of the
phonecode program in 7 different languages:
* Designing and writing the program in Perl, Python, Rexx, or Tcl takes only about half as much time as writing it in C, C++, or Java and the resulting program is only half as long.
* No unambiguous differences in program reliability between the language groups were observed.
* The typical memory consumption of a script program is about twice that of a C or C++ program. For Java it is another factor of two higher.
* For the initialization phase of the phonecode program (reading the 1 MB dictionary file and creating the 70kentry internal data structure), the C and C++ programs have a strong run time advantage of about factor 3 to 4 compared to Java and about 5 to 10 compared to the script languages.
* For the main phase of the phonecode program (search through the internal data structure), the advantage in run time of C or C++ versus Java is only about factor 2 and the script programs even tend to be faster than the Java programs.
* Within the script languages, Python and in particular Perl are faster than Rexx and Tcl for both phases.
* For all program aspects investigated, the performance variability due to different programmers (as described by the bad/good ratios) is on average about as large or even larger than the variability due to different languages.
I conclude the following things:
* As of JDK 1.2.1 (and on the Solaris platform), the memory overhead of Java is still huge compared to C or C++, but the run time efficiency has become quite acceptable.
* The often socalled ``scripting languages'' Perl, Python, Rexx, and Tcl can be reasonable alternatives to ``conventional'' languages such as C or C++ even for tasks that need to handle fair amounts of computation and data. Their relative run time and memory consumption overhead will often be acceptable and they may offer significant advantages with respect to programmer productivity --- at least for small programs like the phonecode problem.
* Interpersonal variability, that is the capability and behavior differences between programmers using the same language, tends to account for more differences between programs than a change of the programming language.
Ovde se kaže ne samo da je C++ ugrožen javom nego i java skript jezicima i to pre 8 godina. Od tada su skript jezici postali mnogo bolji, java je bolja, a C++ kao mator jezik nije mogao toliko da napreduje. Programeri su postali još skuplji, hardver mnogo jeftiniji i mnogo mnogo brži pa ti vidi koliko je svetla budućnost C++. Ali naravno da on neće nestati ali će se koristiti samo tamo gde mora jer je za ostalo nerantabilan, a svi vole lovu. A ovo o brzi raspredaju inženjeri, ali oni se ionako ne pitaju ni za šta u biznisu. Pogledaj na www.tiobe.com kretanje jezika.
[ caboom @ 27.02.2006. 16:58 ] @
... sa druge strane ne bih pravio ovako opasne generalizacije, ovo opisuje samo jednu klasu (doduse, veliku) problema u sw industriji gde je java (jedno od) dobrih resenja. C++, pa cak i C su jos uvek prisutni i bice jos dosta vremena, samo ce im se smanjiti market share. prilicno me plasi svaka generalizacija i ratovi oko toga koja je paradigma bolja, prosto svaka ima svoje mesto i odredjen, manji ili veci, set problema za koje je (jedno od) dobrih resenja.
Citat: Java se u sirovom izvršavanju još davno približila brzini od 2 x C++. Pri samoj alokaciji memorije java je brža za nekoliko desetina procenata od najbrže implementacije maloc funkcije u C-u, a alokacije je u nekim primenama programiranja zaista stvar koju program najviše radi. Java je spora u SWING gui aplikacijama, ali tu možda 4 puta. I za to postoji lek u vidu SWT-a, mada je sa današnjim hardverom to nepotrebno.
ovo je prilicno diskutabilno, mozda za genericka resenja, ali postoji veliki broj besplatnih i komercijalnih zamena za genericke alokatore koja su narocito efikasna u dobro thread-ovanim aplikacijama.
Citat: E sad pogledajmo ovo sa stanovišta najvažnije stvari na svetu $$$. Java je mnogo produktivniji jezik. Mnogo se lakše i brže nešto isporgramira i to što se isprogramira je u startu sa mnogo manje grešaka. Ne samo to. Najveći troškovi su u održavanju. A tu je java u ogromnoj prednosti. Kod joj je manji pa je lakši za održavanje, nalaženje problema je lakše, mnogo stvari je u standardnoj biblioteci pa se lakše nalaze odogovori, izvorni kod i bajtkod je ublavnom portabilan tj. radi na svim platformama za koje se može naći VM...
ovo je u sustini tacno, ali sa druge strane samo produktivnije okruzenje te nece spasiti promasaja u arhitekturi aplikacije. doduse - dace ti vise vremena da se posvetis istoj. ono sto zelim da kazem jeste da te GC enabled jezici stite, sa odredjenom cenom, samo od jedne klase problema. ono sto je opasna stvar kod jave jeste da dobar deo java programera koje sam upoznao, narocito onih bez C/C++ background-a, nema veliku svest o memoriji i limitima "alata" koji koriste i nemaju onaj nivo discipline koju poseduju C/C++ programerl, ali ovo je vec potpuno druga tema i jako dobar nacin da se zapocne flame war, tako da cu naprosto stati na ovom mestu. i dalje mislim da je los management i losa procena vremena najveci neprijatelj troskova i kvaliteta proizvoda.
[Ovu poruku je menjao caboom dana 27.02.2006. u 17:59 GMT+1]
[ Dragi Tata @ 27.02.2006. 17:28 ] @
Citat: Au197/79:
Onde gde C++ mnogo veću prednost nad javom nego što je to u brzini je u količini memorije koju koristi, ali po strašnoj ceni da se programer sam brine o upravljanju memorijom (mada postoje biblioteke za Garbage collection u C++, ali se tada prednost C++ topi).
E sad pogledajmo ovo sa stanovišta najvažnije stvari na svetu $$$. Java je mnogo produktivniji jezik. Mnogo se lakše i brže nešto isporgramira i to što se isprogramira je u startu sa mnogo manje grešaka. Ne samo to. Najveći troškovi su u održavanju. A tu je java u ogromnoj prednosti. Kod joj je manji pa je lakši za održavanje, nalaženje problema je lakše, mnogo stvari je u standardnoj biblioteci pa se lakše nalaze odogovori, izvorni kod i bajtkod je ublavnom portabilan tj. radi na svim platformama za koje se može naći VM...
Hehehe, po "strašnoj" ceni. Memorija je resurs kao i svaki drugi - fajlovi, soketi, db konekcije, a GC se brine samo o memoriji. Ili umeš da ručno upravljaš resursima, ili ne. Ako da, onda upravljanje memorijom nije "strašno", a ako ne onda ćeš da zabrljaš sa drugim resursima i GC neće ništa da ti pomogne.
A i to o produktivnosti je vrlo diskutabilno. Java i C++ imaju prilično odvojene primene i teško mi je da smislim dobar primer gde bi mogla da se meri produktivnost. I inače, produktivnost mnogo više zavisi od kvaliteta programera nego od jezika ili alata koje koristi.
[ MadTexel @ 27.02.2006. 18:52 ] @
Citat:
koliko ja znam razlika je oko 4 puta...ali to je sve ukupno vreme rada programa sa sve ucitavanjem (koje kod jave traje duze jer ima milion provera i ucitavanje cele jvm i sl.)
a u nekom testu sam gledao da je deo programa koji izvrsava neku operaciju samo 2 puta sporiji... (uporedjivao je vremena kad su programi pokrenuti i onda pritisne enter i krenu da rade neku zahtevniju operaciju)
hardware ce to totalno da baci u drugi plan (vec je to manje bitno)
+ u javi se mnogo jednostavnije programira jer nema zezanja sa npr destruktorima i sl
+ java ima mnogo jednostavnije visenitno programiranje a to je jako bitno posto svaka ozbiljna serverska aplikacija ima posebne niti za svakog klijenta
"Samo" 2x. Da li je 2x "samo"? Sumnjam da JIT kompajler može da iskoristi stvari tipa MMX i SSE 1/2/3 ili da precizno kontroliše šta ide u keš memoriju. Intenzivne obrade, gde je odnos aritmetičkih i memorijskih operacija približno jednak ili u malom odnosu (2:1 3:1 3:2) vrlo zavise od toga i čim podaci nisu u kešu brzina drastično opada (i to ne 2x nego više).
Što se tiče cene programerskog posla, i to vredi malo razmotriti. Hardver je jeftin, a programeri su skupi. Za embeded poslove, gde je softver prilično mali, mnogo je jeftinije praviti program u C++, čak i sa asemblerom, jer to omogućava jeftiniji hardver. Ako je u pitanju proizvod koji se pravi u velikim serijama veća cena razvoja softvera se amortizuje dosta nižom cenom hardvera. Možda nisam u pravu, ali zašto onda i dalje postoje DSP samo sa integerima, kad je svakako za programera lakše koristiti fp aritmetiku? Ili mikrokontroleri sa memorijom tipa 1KB?
Javino okruženje teško može da stane u nekoliko desetina ili stotina KB. Možda "lokalno" usporenje nije tako veliko, ali kad se uračuna realno stanje, odnosno i veće trošenje memorije dolazi se do toga da je veća mogućnost da krene swapovanje, a čim se počne sa time, usporenje je neuporedivo veće od 2-4x. Ko voli matemaičke programe: Maple 9 je radjen u Javi, sa nekoliko grafika i definisanih funkcija troši preko 100MB memorije, dok verzija 7 troši oko 3-4 puta manje.
BTW, nisu baze jedina stvar. Tu je Java (verovatno) u prednosti, ali kao generalno rešenje, za to još uvek nije. Da li je neki upotrebljivi SQL server pisan u Javi?
Ko i dalje misli da je 2x "samo" neka zamisli 2x sporiji Windows, Office, bilo koji zahtevniji program. Da ne govorim o 2x sprojim igrama. 
[ x VITA x @ 27.02.2006. 18:55 ] @
kako nemaju? evo primer treba neka serverska aplikacija za postu...
dakle koliko vremena treba java programerima a koliko c++ programerima da naprave tako nesto?
i koliko je java resenje portabilnije i sigurnije od bugova jer te jvm stiti od milion stvari...
a ako je glavni argument da placas programera jos 6 meseci da kuca kod to sto ce kod na kraju da radi sa 50mb memorije manje...onda stvarno :)
generalno nasao sam negde u nekoj knjizi lik pominje kako najbolja knjiga koju je on citao a koja se bavi c i c++ je 80% posvecena jurenju pokazivaca po kodu i resavanja curenja memmorije i dangling referenci...
ako ti treba brz deo koda to se lepo moze povezati sa c i c++ tako da ta intenzivna metoda bude implementirana u brzim jezicima...
[ sasas @ 27.02.2006. 20:35 ] @
Citat: Dragi Tata: Sve zavisi. Recimo, dinamičko alociranje memorije ume da bude dosta brže kod Jave, a i IO je često brži nego kod C++ standardne biblioteke. ...
Da li možeš da me uputiš na neki izvor na netu koji objašnjava kolike su razlike i zašto, i eventualno na neki sajt koji bi prikazao kood i način testiranja. Radi se najviše o profesionalnoj radoznalosti, mada priznajem da mi je u ove tvrdnje teško poverovati, pa da nekako sam proučim stvari...
ss.
[ Dragi Tata @ 27.02.2006. 21:04 ] @
Citat: sasas: Da li možeš da me uputiš na neki izvor na netu koji objašnjava kolike su razlike i zašto, i eventualno na neki sajt koji bi prikazao kood i način testiranja. Radi se najviše o profesionalnoj radoznalosti, mada priznajem da mi je u ove tvrdnje teško poverovati, pa da nekako sam proučim stvari...
Nažalost, na internetu možeš uglavnom da nađeš tekstove "zaljubljenika" u GC ili "mrzitelja" GC-a, ali probaj sam pa ćeš da vidiš. Uprošćeno, kod dinamičkog alociranja memorije, Java jednostavno ode na kraj heap-a i da ti prvi sledeći blok; C alokator mora da prođe kroz listu slobodnih blokova i vrati dovoljno veliki blok. Naravno, C++ ima mogućnost da koristi specijalizovane alokatore za pojedine objekte i u tom slučaju će da bude brži nego Java. Takođe, moderni C++ programi kreiraju objekte na steku kad god je to moguće, što je i brzo i bezbedno.
Što se IO-a tiče, sve implementacije C++ standardne biblioteke su grozno spore, ali uvek možeš da koristiš C biblioteku koja je mnogo brža, ili da direktno zoveš I/O API operativnog sistema.
Tako da kad sabereš i oduzmeš, C++ je onoliko brži koliko umeš da ga koristiš :)
[ MadTexel @ 27.02.2006. 21:27 ] @
Citat:
kako nemaju? evo primer treba neka serverska aplikacija za postu...
dakle koliko vremena treba java programerima a koliko c++ programerima da naprave tako nesto?
i koliko je java resenje portabilnije i sigurnije od bugova jer te jvm stiti od milion stvari...
Evo primer, treba neka obrada signala ili slike, realtime. Na raspolaganju su C, asm i biblioteke za C. Koliko vremena treba da se napiše taj softver? A koliko da neko napiše JVM pa da se uradi program u Javi? Java je portabilna samo pod uslovom da na ciljnom sistemu postoji JVM što nije uvek slučaj. A napraviti JVM je sve samo ne mali posao. Znači, što bi pisali program u Javi mesec dana i čekali jos godinu-dve da se pojavi JVM, kad možemo za 2-3 meseca da ga napišemo u C++u. Gomila malih sistema i nema hardverske mogućnosti da potera Javu. A ako misliš da će firma da žrtvuje deo zarade, tj $$$ da bi nekom bilo lakše, to se grdno varaš.
Citat:
a ako je glavni argument da placas programera jos 6 meseci da kuca kod to sto ce kod na kraju da radi sa 50mb memorije manje...onda stvarno
Izgleda da voliš da gledaš podsmešljivo na argumente drugih? Tebi je memorija jeftina. A ako će program da radi sa 3GB memorije manje? Dobro, 3GB nije nešto mnogo skupo, ipak je priuštivo i pojedincima. Da li je i 30GB sitnica? Šta sa brzinom zbog lošeg korišćenja keša? Dobro de, 10-15x sporije, nije strašno, Murov zakon će to da obebedi za nekih 4.5-6 godina (ili bi obezbedio kad bi i dalje važio, ali to je sasvim druga priča?). Nažalost, kod stvari kojima je pristup memoriji usko grlo Murov zakon ne pomaže, samo brža memorija (ovo napreduje brzinom puža), algoritmi koji vode računa o kešu i više keša (prilično skupo). Naravno, kod baza podataka ti nikad nećeš videti neku veću fp obradu, barem dok multimedijalne baze ne postanu zastupljenije. Ili da je svaki primerak uređaja skupli 10$ zbog toga što Java zahteva brži procesor i više memorije, pa kad se proda 100K komada razlika je 1M$. Ili, koliko treba mašini da se bootuje, bez obzira na OS? Dokle god čovek čeka računar, a ne obrnuto, može da bude brže.
Citat:
generalno nasao sam negde u nekoj knjizi lik pominje kako najbolja knjiga koju je on citao a koja se bavi c i c++ je 80% posvecena jurenju pokazivaca po kodu i resavanja curenja memmorije i dangling referenci...
Ovo je poseban biser. GC oslobodi memoriju kad se više ne koristi. Zaboraviš da staviš referencu na null, ups, vidi, pa efekat je kao da ti curi memorija.
Citat:
ako ti treba brz deo koda to se lepo moze povezati sa c i c++ tako da ta intenzivna metoda bude implementirana u brzim jezicima...
Na stranu to što Java nema višsetruko nasleđivanje (jeste popularno pljuvati po njemu, ali da je ono tako nepotrebno ne bi postojalo), pa preklapanje operatora, pa šabloni tek od skoro.
Ne znam da li možeš da shvatiš da baze nisu jedina oblast primene i da oko tebe ima gomila stvari koje verovatno nikad neće biti napisane u Javi. E sad ako ćeš ti da se uvek vataš za pošte i banke, kao da je to jedini softver koji postoji, onda ok. Samo što onda ne pređeš na OS pisan u Javi (i dobro de, malo asemblera). Pa hajde da i drajveri budu u Javi. Biće portabilni između Linuxa i Windowsa i BSDova. Plus biće i manje plavih ekrana.
Kratko rečeno, ima stvari koje u Javi mogu da se urade lakše nego u C++u, ali takođe stoji činjenica da je dosta stvari koje se u C++u mogu u raditi a u Javi ne. Isto važi i za ostale interpretirane jezike, ili kako se danas popularno zvou, skript-jezici.
[ obucina @ 27.02.2006. 22:16 ] @
@mucky
Da li bi mogao da nam predochish koji bi to alati bili, zashto su bolji od Jave na polju 'serverskih aplikacija', i ko to (osim tebe) tvrdi?
Naravno. U pitanju su C i C++. Zasto su bolji od Jave? Brzi su i mocniji. Ko kaze? Hm...
Oracle DB Server
MSSQL DB Server
Interbase DB Server
Firebird DB Server
MySQL DB Server
BIND - DNS Server
ftpd - FTP Server
IIS - HTTP Server
Apache HTTP Server
X Server za *NIX sisteme
sendmail - SMTP server
popd - IMAP i POP3 server
Ima jos... Na sourceforge, pregled po programskom jeziku, trazi "server", pa razgledaj...
E, sad, to sto neko ne zna pravilno da koristi ove jezike, nije razlog da ih omalovazava. Jurcanje sa memorijom, tesko se nalazi greska, treba sto godina da se napise program - to je smesno... Ko ih zna i radi sa njima, radice podjednako efikasno kao i sa bilo kojim drugim jezikom. Oba jezika imaju ogromne community-je i ogroman broj dodatnih biblioteka i klasa za svaki moguci problem koji moze da se pojavi, imaju sirok spektar razvojnih okruzenja, ima besplatnih, ima komercijalnih, ima starih, ima novih, ima kompajlera za ko zna koliko platformi, itd... Top of the line je svakako Intelov C++ komapjler. Programi PODIVLJAJU kada se prevedu njime. Intel takodje ima i liniju proizvoda "Intel performance libraries" - C++ i Fortran biblioteke neprikosnovenih performansi.
Java moze samo da se pokloni C++.
Ali, naravno, sve zavisi od potreba, mnogo i od navika, a najvise od toga sta ko zna i kako zna, tako da prica "ciji je veci", u ovom slucaju ne moze odvesti nikud.
@x VITA X
kako nemaju? evo primer treba neka serverska aplikacija za postu... dakle koliko vremena treba java programerima a koliko c++ programerima da naprave tako nesto? i koliko je java resenje portabilnije i sigurnije od bugova jer te jvm stiti od milion stvari...
VITO, postoje razvijene biblioteke za svaki problem i jako mocna razvojna okruzenja. U Borland C++ Builderu ti za pravljenje SMTP servera treba najvise sto pritisaka na tastaturi i tacno tri klika, od cega je jedan klik na Run. A ako se potrudis, za manje od minuta mozes da napravis SMTP server kao Windows servis.
@caboom
ono sto je opasna stvar kod jave jeste da dobar deo java programera koje sam upoznao, narocito onih bez C/C++ background-a, nema veliku svest o memoriji i limitima "alata" koji koriste i nemaju onaj nivo discipline koju poseduju C/C++ programerl...
Takodje, nemam nameru da zapocinjem flejm. Da je covek u pravu, vidi se i u ovoj raspravi po tome kako se olako uzima to "samo 2 puta sporije" ili po "50MB gore-dole, sta ti znaci, programer je skup". Programer jeste skup, ali je programer placen da radi svoj posao a to je pisanje efikasnog programa.
[Ovu poruku je menjao obucina dana 27.02.2006. u 23:47 GMT+1]
[ degojs @ 27.02.2006. 22:43 ] @
@MadTexel & obucina
A jesi probao ti da pravis vecu web aplikaciju u C++ ?
Mislim, navodis primere gde je prednost C ili C++ ocigledna. Pa eto ti onda primer gde je upotreba Jave svakako bolje resenje.
O kontrolerima bi mogao da se raspravljas sa nekim ko radi programiranje prilikom sastavljanja CNC masina, a koliko je meni poznato, koristi se PCL.
I onda bi mogli da kazemo da ga C++ duva PCL-u isto kao i "Java moze da se pokloni C++"..
[Ovu poruku je menjao degojs dana 28.02.2006. u 00:09 GMT+1]
[ NikolaVeber @ 27.02.2006. 22:47 ] @
Ova tema je mogla da se nazove "Razlika u brzini kopanja ašovom i bagerom".
Naravno, ašovom se može preciznije kopati, ašov radi i bez nafte. A bager može da za sat vremena iskopa ono što 10 ljudi sa ašovima kopaju 7 dana. Ali opet, bager potroši 10 litara nafte za tih sat vremena, a i košta mnogo više od ašova.
Postoje suštinske razlike u primerima koji su navođeni. Svaki jezik ima svoje prednosti i mane, a polja na kojima se primenjuju govore o kvalitetima koji se traže na svakom od njih.
Citat: Java moze samo da se pokloni C++.
u nekim oblastima da. U drugim moze C++ da se pokloni javi. I tako u nedogled.
2 stvari koje su u poslednje vreme prisutne i moraju se uzeti u obzir: GCJ i SWT.
Inače mislim da je java najupotrebljivija na polju enterprise softvera, pošto ima mehanizme koji omogućavaju posvećivanje logici, što na kraju vodi bržoj izradi i lakšem održavanju softvera (J2EE).
(ne znam da li C++ ima slične framework-ove, tako da ne mogu da ovo navodim kao isključivu prednost jave)
[ anon315 @ 27.02.2006. 22:58 ] @
Zar je moguće da pola ljudi ovde još uvek nije naučilo da je za svaki posao potrebno IZABRATI pravi alat koji će najbolje da mu završi posao?
[ Au197/79 @ 27.02.2006. 23:31 ] @
Ja jesam generalisao. Nikao se ne može reći: jezik a je tačno xy,z puta brži od jezka b. Java je u nečemu brža a u nečemu sporija i to zavisi od verzije VM i moda u kojem je VM.
Dalje nisam govori o specijalnim primenama. Mada i java postoji za male uređaje. To je čak i bila ideja kad su je stvarali. I nisam govori o programiranju nekih posebnih softvera. Jasno je da ni jedan jezik nije univerzalan za sve. Ali svoditi javu na samo jednu primenu je potcenjivanje. Znam da su neki likovi zbog toga odlučili da naprave operativni sistem u javi :) Jeste da je to silovanje jezika ali će dokazati da je to moguće (kao i IBM-ova ogledna JVM koja je pisana u javi). A koliko čujem ni u C-u se ne može bez asemblera isprogramiraiti OS.
Java može dostojno (jeftinije) da zameni C++ u većini primena i sve joj ide na ruku da ta zamena bude bolja i šira. Već u sledećoj verziji će moći da alocira na staku što će biti značajno ubrzanje. JVM više nije prost interpreter. Svako novo izdanje postaje sve bolje u brzini i radu sa memorijom (ima nekoliko modova koji se uključuju automatski). Brzina od C++ x 10 je prevaziđena još devedesetih.
Pravi programeri™ ionako programiraju u Fortranu :)
[ degojs @ 27.02.2006. 23:38 ] @
Citat: Oracle DB Server
MSSQL DB Server
Interbase DB Server
Firebird DB Server
MySQL DB Server
BIND - DNS Server
ftpd - FTP Server
IIS - HTTP Server
Apache HTTP Server
X Server za *NIX sisteme
sendmail - SMTP server
popd - IMAP i POP3 server
E budalestine.. Kad se krenulo sa razvojem tih aplikacija? Samo je jos falilo da napises da Unix nije napisan u Javi.
A necemo ni da ih prepisujemo u Javi ili C#-u iz cista mira i nakon toliko godina "peglanja".. A sigurno je za Javu ili .NET otezavajuca okolnost sto te gore aplikacije vec postoje, pa onda sto da izmisljas toplu vodu. Citaj dalje, ipak.
Evo par novijih stvari:
Windows Presentation Foundation
Windows Communication Foundation
Ako se dobro secam i ako sam dobro razumeo :), ove stvari su delom pisane u .NET-u (sto je, je li, slicno Javi) i bice osnovne nove tehnologije u novim Windowsima (a onda ostaje da se vidi koliko ce vremena trebati pre nego pocnu da se pojavljuju aplikacije za iste..)
Tu je i Microsoft Shell (Monad).
Dalje, ako cemo o serverima, nemojte samo da pricate svasta. JBoss, Apache TomCat, Apache Geronimo (od nedavno u v.1.0) - nije da nema i nije da ne rade super.
Mislim i da je Sun Application Server pisan u Javi.
OpenOffice koristi HSQL kao bazu (Java)..
The Apache FTP Server is a 100% pure Java FTP server.
Apache Derby is a Java database that IBM submitted to the foundation last year. Late last month, the project graduated from "incubator" status and became part of the Apache DB project. IBM already has a commercial version of Derby called Cloudscape. It also acquired GlueCode, which bundles Derby with the Apache Geronimo Java application server.
Sun said it plans to embed Derby as a database with its Java application server and portal server as well as its open-source NetBeans Java developmental tool.
Ne kazem da su ova resenja superiorna u odnosu na ona sto si naveo, ali daleko od toga da su losa i da nema dobrih aplikacija te kategorije pisanih u Javi.
Moglo bi "uskoro" da se desi da se C++ za skroz novi softver koristi samo tamo gde bas mora - igrice :>
[Ovu poruku je menjao degojs dana 28.02.2006. u 01:26 GMT+1]
[ Dragi Tata @ 28.02.2006. 00:41 ] @
Citat: Au197/79: Već u sledećoj verziji će moći da alocira na staku što će biti značajno ubrzanje. JVM više nije prost interpreter. Svako novo izdanje postaje sve bolje u brzini i radu sa memorijom (ima nekoliko modova koji se uključuju automatski). Brzina od C++ x 10 je prevaziđena još devedesetih.
Pravi programeri™ ionako programiraju u Fortranu :)
Imaš li neki link za to alociranje objekata na steku? Interesuje me da li će to moći da se radi sa svim objektima ili samo sa "strukturama" kao u .NET-u. Još važnije, da li će Java da dobije determinističke destruktore?
A što se Fortrana tiče, sprdnja ti uopšte nije na mestu. Ovaj jezik se itekako koristi kod numeričkih aplikacija i tu može da pojede za doručak i C++ i Javu u jednom zalogaju. Bez starca nema udarca :)
[ obucina @ 28.02.2006. 00:42 ] @
Citat: degojs: E budalestine.. Kad se krenulo sa razvojem tih aplikacija?
degojs, stoji sve to, ali pogledaj naslov - Razlika u brzini između C++ i Jave.
A direktnmo pitanje je bilo:
Kolika je stvarno razlika u brzini (iste, koliko je to moguće) aplikacije koja je pisana u C++ i u Javi koja se izvršava na JRE i koja je kompajlirana HotSpotom recimo.
Kosmička istina je: Ako se napiše isti (koliko je to moguće) program u C++ i Javi, verzija napisana u C++ će biti brža.
Da li nešto može ili ne može da se napiše u Javi je sekundarno pitanje, koje je usput glupo, pošto se jezik godinama razvija i ljudi nisu sedeli skrštenih ruku za to vreme već su unapređivali svoj alat kako su najbolje znali i umeli i dodavali sve što im je trebalo.
Ali, kada je brzina u pitanju, džabe najbržoj implementaciji Java programa sve žive i mrtve optimizacije i arhitekture i ne znam šta, kada stane na crtu moćnom Intel C++ kompajleru ukršenom sa Intel Performance Primitives bibliotekom. Neki od korisnika istog: Hewlett Packard Corporation, CERN, IBM, Oracle (Sa Intelove stranice).
[ x VITA x @ 28.02.2006. 01:35 ] @
visestruko nasledjivanje je nesto sto je u c++ neophodno zbog nepostojanja interface-a
java je to izbacila i ucinila nesto najbolje
imate jednu od najboljih knjiga o programiranju GoF design patterns koja je napisana za tadasnje c++ programere koja je kritikovala visestruko nasledjivanje
3GB memorije?
koja aplikacija koristi ovoliko memorije?
oracle server koristi manje
generalno da je java toliko losh jezik niko ne bi presao sa c++ na nju
na serverskoj strani je apsolutno dominantan jezik jer se inace nigde i ne koristi a koliko znam java i c su najkorisceniji jezici...pa sad kako to? niko ne pise media player u javi ali za ozbiljne enterprise aplikacije je mnogo dobar jezik...
da ne pominjem razne frameworkove koji olaksavaju stvari koje c++ programeri moraju rucno da rade...
programeri ne pisu programe koji treba da efikasno koriste procesor vec koji treba da efikasno koriste resurse onoga ko koristi program.. a njemu je placanje programera mnogo bitnije nego memorija...
nikad nisam ni rekao da je java za sve tipove sotfware-a...
ali da server side aplikacije trenutno radi najbolje...
a mislim da je 2 puta stvarno "samo" ako je to nekome najbitnije...ok ...neka kuca u cpp
sto se tice web aplikacija tu takodje java ima dobru podrsku jer cesto serverska aplikacija ima jedan deo interface-a kroz browser...
nisam siguran ali neka me neko ispravi u vezi podrske c++ za web programiranje..
ja znam jedino za cgi..ali to je ekstremno primitivno i neelegantno resenje...
Citat:
Ovo je poseban biser. GC oslobodi memoriju kad se više ne koristi. Zaboraviš da staviš
referencu na null, ups, vidi, pa efekat je kao da ti curi memorija.
gc ti nikada nece ocistiti memoriju dok imas neku referencu ka tom objektu...tek kad nemas nista ka nekom objektu posto nema pointerske aritmetike nikako ne mozes da dodjes do tog objekta tako da ti onda on ne treba .. i to je cela mudrost...
[ bmcvetic @ 28.02.2006. 02:53 ] @
Hm, vidim da sam sa ovom temom pogodio u sujete nekih.
Nego da i ja izjavim nešto za dnevnik...
Puno priče o parama, možda i previše... Iako svaki dinar i evrić zarađujem pisanjem serverskih aplikacija (PHP, ColdFusion, Java) stvarno sam nezadovoljan brzinom i generalno mogućnostima aplikacija koje koriste browsere, aplete, pa razni sigurnosti sistemi, pa zabrane, korisnik isključio Javu, JavaScript, obriši cache, koji encoding koristi, štampa... Bljak
Kao jedinu bitnu prednost Jave u odnosu na dobro napisani C++ vidim portabilnost. Priče o recimo višestrukom nasleđivanju i interfejsima su sitnice. Ko bi me živ naterao da učim nešto drugo osim C i C++ da je kod portabilan na sve platforme i da je nastavljen razvoj standardnih C++ biblioteka u smeru u kom su i recimo Javine. Za mene je Java C++ kanalisan (i osiromašen) tako da skrati vreme pisanja i poveća produktivnost i ništa više. Koji je istinski novi koncept koji nudi Java? Kakvi bre operativni sistemi, igrice, baze, drajveri u Javi?
Slažem se da su recimo .NET i Java platforme za budućih par, a možda i desetak godina. Ali to je samo tako što su nametnuli Microsoft, Sun i družina.
Nervira me popularnost interpretiranih jezika i hoću ja da kontrolišem memoriju, sve ostalo! A kome su pare bitne, onda pusti sve JVM i boli te uvo...
[ blaza @ 28.02.2006. 02:58 ] @
Nov C++ standard, koji ce najverovatnije biti objavljen 2009. ce podrzavati opcioni GC.
[ Dragi Tata @ 28.02.2006. 02:59 ] @
Citat: x VITA x: visestruko nasledjivanje je nesto sto je u c++ neophodno zbog nepostojanja interface-a
java je to izbacila i ucinila nesto najbolje
imate jednu od najboljih knjiga o programiranju GoF design patterns koja je napisana za tadasnje c++ programere koja je kritikovala visestruko nasledjivanje
To je "malo" zastarelo stanovište. Recimo tehnike opisane u Modern C++ Design itekako koriste višestruko nasleđivanje. Uostalom, VN i nije specijalitet C++-a, podržavaju ga i drugi programski jezici, kao što je Eiffel, CLOS, OCaml, Python... Nasleđivanje preko interfejsa jednostavno nije isto kao "pravo" nasleđivanje.
[ degojs @ 28.02.2006. 03:43 ] @
Citat: Koji je istinski novi koncept koji nudi Java?
A koji je to istinski novi koncept ponudio C++?
Citat: Kakvi bre operativni sistemi, igrice, baze, drajveri u Javi?
Koji je to kernel radjen u C++? Drajveri, neka me neko ispravi, se takodje pisu uglavnom u C. Baze, vec smo to dotakli, skoro sve popularnije baze su pocele da se razvijaju mnogo pre Java je uopste i postala popularna tako da.. Zasto bi IBM, MS, Oracle i ostali ulagali u razvoj Java ili .NET baza uopste umesto da poboljsavaju ono na cemu vec godinama rade? Opet, imas odlicnih baza u Javi (od HSQL do Derby). Ostaju igrice, slazem se.
I da, kakve bre web aplikacije i enterprise serverske aplikacije u C++?
Eto.
[Ovu poruku je menjao degojs dana 28.02.2006. u 07:45 GMT+1]
[ dejanet @ 28.02.2006. 08:14 ] @
Za nas ovde definitivno ima vise posla u JAVI. Pomenuo bi samo : IBM websphere, Sun App. server, Weblogic ...itd. Vecina velikih svetskih firmi i banaka drzi ove aplikativne servere u kombinaciji sa Oracle db serverom. Tu ima sigurnog posla u narednih 5-10 godina.
Pozdrav.
[ Au197/79 @ 28.02.2006. 08:59 ] @
Citat: Dragi Tata: Imaš li neki link za to alociranje objekata na steku? Još važnije, da li će Java da dobije determinističke destruktore?
A što se Fortrana tiče, sprdnja ti uopšte nije na mestu.
Evo ubih se guglajući i na kraju nađoh: http://www-128.ibm.com/develop...?ca=dgr-lnxw01JavaUrbanLegends Iako tekst govori o urbanim legendama o sporosti jave imaš u predposlednjem paragrafu o stak alokaciji. Nisam ništa pročitao o destruktorima.
Nisam se sprdao sa Fortranom već sa pravim programerima (Real Programmers Don't Use Pascal, Real Programmers use Fortran) :)
Citat: obucina: degojs, stoji sve to, ali pogledaj naslov - Razlika u brzini između C++ i Jave.
A direktnmo pitanje je bilo:
Kolika je stvarno razlika u brzini (iste, koliko je to moguće) aplikacije koja je pisana u C++ i u Javi koja se izvršava na JRE i koja je kompajlirana HotSpotom recimo.
Ponavljam: HotSpot kompajlirnje ne postoji. A ako je pitanje samo o javi i C++ zašto si naveo ove aplikacije: Oracle DB Server, MSSQL DB Server, Interbase DB Server, Firebird DB Server, MySQL DB Server, BIND - DNS Server, ftpd - FTP Server, IIS - HTTP Server, Apache HTTP Server, X Server za *NIX sisteme, sendmail - SMTP, server i popd - IMAP i POP3 server. Verujem da nisu sve napisane C++om. Sigurno tu ima i C-a a to je drugi jezik (druga pragma programiranja).
Citat: bmcvetic: Koji je istinski novi koncept koji nudi Java? Kakvi bre operativni sistemi, igrice, baze, drajveri u Javi?
Pogledaj na čuvenom Ward Cunningham-ovom sastajalištu programera (i prvoj wiki stranici) o jezicima koji su uneli novine: http://c2.com/cgi/wiki?GroundBreakingLanguages Imaš 2 liste. U prvoj jezici koji su stvarno nešto novo izmislili u drugoj jezici koji su na stvarno dobar način primenili ono što je već bili izmišljeno. Traži javu i c++.
A evo Quake 2 mašine u javi: http://developers.slashdot.org...d=05/11/28/1246209&tid=112
Java OS: http://www.jnode.org/node/765 :)
Malo o optimizaciji sledeće verzije jave u client modu:
http://weblogs.java.net/blog/o...2005/11/mustangs_hotspo_1.html
I ja sam napadao javu kako se sporo menja, kako su mnoge stvari kasno ubačene, npr. šta vredi što su u 5. verziju ubacili Enum, kad će zbog kompatibilnosti čitava standardna biblioteka biti bez njih. Pa ono čuveno depricated, pa klase koje jesu depricated ali se svuda koriste pa ih ni ne označavaju da su depricated (Vector, Enumerator...). Ali kad vidim kako je neosnovano napadaju moram hteo ne hteo da je branim.
[Ovu poruku je menjao Au197/79 dana 28.02.2006. u 10:15 GMT+1]
[ x VITA x @ 28.02.2006. 10:00 ] @
Citat:
Koji je istinski novi koncept koji nudi Java?
nijedan... smalltalk i c++ su vec imali to sve
ali za razliku od smalltalk-a iza jave su stale velike firme i to ju je progruralo
Citat:
I da, kakve bre web aplikacije i enterprise serverske aplikacije u C++?
dakle pitanje je i dalje otvoreno...
:)
[ obucina @ 28.02.2006. 10:10 ] @
Citat: Au197/79: A ako je pitanje samo o javi i C++ zašto si naveo ove aplikacije:
Zato sto me mucky pitao:
Da li bi mogao da nam predochish koji bi to alati bili, zashto su bolji od Jave na polju 'serverskih aplikacija', i ko to (osim tebe) tvrdi?
A ja sam predocio C i C++, i naveo ove servere.
[ mucky @ 28.02.2006. 10:28 ] @
Ti mene nisi razumeo, aplikacije koje si ti naveo spadaju u drugi "sloj" serverskih aplikacija, definitivno ne onaj u kom Java suvereno vlada.
RDBMS, Web serveri, operativni sistemi, itd. se josh uvek pishu u assembly/C/C++ jezicima, pre svega jer se na tom polju zaista isplati ulozhiti programerske sate da bi se dobilo na brzini, jer su to stvari koje rade 24h dnevno, imaju ogroman payload i opsluzhuju mnogo drugih aplikacija.
Web i druge aplikacije koje se oslanjaju na programe koje si ti naveo se vishe isplate ako se pishu u Java, .NET i ostalim tehnologijama, jer se pishu iznova za svaku mushteriju, pa su upravo zbog toga razvijeni odlichni sistemi za te jezike koji omogucavaju code reuse, sigurnost, portabilnost, durabilnost etc.
Poenta je da svaka primena ima svoj alat, i ne treba meshati babe i zhabe. Cilj svakog programa je da reshi nechiju muku, i donese profit ako je to moguce. Tu nema mesta nekoj velikoj ljubavi, i shto pre to shvatimo to bolje po nashu karijeru.
[ Au197/79 @ 28.02.2006. 10:30 ] @
Zašto mešaš C u ovu priču? To je drugi jezik koji nema ugrađene OOP mogućnosti (ali jeste moguće programirati OOP). Mislim da je C++ sebe u startu osakatio tom kompatibilnošću sa C-om, a čini mi se da po najnovijim standardima počinje razdvajanje. Zato mislim da je budućnost u D-u.
Čuvena je tvrdnja kako su najgori C++ programeri izbeglice iz C-a.
[ Dragi Tata @ 28.02.2006. 13:07 ] @
Citat: x VITA x: dakle pitanje je i dalje otvoreno...
:)
Pa da odgovorim, mada ova tema postaje obična pljuvačina:
http://www.ebay.com/
http://www.google.com/
http://search.msn.com/
I jedna na kojoj ja radim, mada nije popularna kao gornje 3 :)
http://www.lionbridge.com/glob...logy/logoport.liox?intLangID=1
[ Dragi Tata @ 28.02.2006. 13:14 ] @
Zanimljivo, ali na žalost nije baš isto. Ovde se govori o optimizaciji koju JVM može da izvrši u pojedinim slučajevima. Programer i dalje nije u mogućnosti da eksplicitno alocira objekat na steku, a nema ni destruktora.
[ Java Beograd @ 28.02.2006. 15:50 ] @
Mislim da se diskusija alokacija/dealokacija VS garbage Collector može uporediti sa manuelni VS automatic menjač u kolima.
Neko, brate, voli da ga isturira u drugoj do 80, a neko ne voli da razmišlja, i da brine o obrtajima, pa posao prepušta automatici. Oba imaju svekoliku primenu, u svim segmentima.
[ degojs @ 01.03.2006. 14:29 ] @
Citat: Dragi Tata
I jedna na kojoj ja radim, mada nije popularna kao gornje 3 :)
A da li je cela aplikacija radjena u C++ ili su samo neki kriticniji delovi odradjeni tako?
[Ovu poruku je menjao degojs dana 01.03.2006. u 15:46 GMT+1]
[ bmcvetic @ 01.03.2006. 19:24 ] @
Malo sam ceprkao po Google-u i naisao na neke interesantne testove o brzini.
Sam sam i probao jedno desetak testova na Windowsu i Linuxu. To su standardni testovi sa Akermanovim brojevima, prebrojavanjem reci, Fibonacijevi nizovi, deljenja, alokacije memorije, rad sa grafikom itd.
Da, istina je da je C++ kod dosta brzi od Jave (2-10 puta zavisno od testa), ali to vazi samo kad dok se ne upotrebi JIT kompajler. Kada se Javin kod kompajlira sa JIT komp. performanse Jave dostizu C++ do maks. 2 puta sporije, dok je Java u nekim testovima i brza npr. sa matricama i hash. Bez obzira na moje opaske od ranije, moram da priznam da sam pomalo iznenadjen brzinom Jave.
Stice se utisak da je Java samo memorijski zahtevnija. Jeste ponegde sporija, ali ne toliko (radi se o procentima). Izgleda da su JIT kompajler i VM 1.5 svojski napredovali.
U sustini, ovo su dva jako slicna jezika.
Pozdrav
[ obucina @ 02.03.2006. 17:44 ] @
Citat: bmcvetic: Kada se Javin kod kompajlira sa JIT komp. performanse Jave dostizu C++ do maks. 2 puta sporije, dok je Java u nekim testovima i brza npr. sa matricama i hash.
Posto si uzeo najbolje resenje za Javu, uzmi i najbolje resenje za C++. Dakle, Java JIT vs Intel C++ kompajler, a za rad sa matricama koristi Intel Math Kernel, ima biblioteka za linearnu algebru, pa javi rezultate.
Korisnici Intel Math Kernela prijavljuju povecanje performansi od 40% do 70%. Korisnici Intel C++ kompajlera prijavljuju povecanje performansi do 10% u odnosu v9 prema v8 kompajleru, i preko 20% u osnosu na gcc 3.4 kompajler (sa Intelovog sajta).
[ Dragi Tata @ 02.03.2006. 20:06 ] @
Citat: bmcvetic:
U sustini, ovo su dva jako slicna jezika.
Naprotiv. Jako su različiti. Imaju sličnu sintaksu (iz marketinških razloga) i to je sve. Dobro napisan C++ program uopšte ne liči na dobro napisan Java program.
[ srdjandakic @ 02.03.2006. 23:01 ] @
Da li postoji neki način da se ubrza Java na PC-ju ?
Neki switch, nešto...
C:\Documents and Settings\User>java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
/* Ne mogu da se otmem utisku da koji god računar da kupim, NetBeans radi sporo :) Mislim na otvaranje dialoga, bildanje.... Računar je AMD 3000 sa 1 GB RAM */
[ Skaarj @ 03.03.2006. 00:10 ] @
Ako pogledas netbeans.conf u etc direktorijumu instalacije videces da imas par opcija da povecas heap i koristis jos neke opcije koje nisu podrazumevane. Meni je to znacajno poboljsalo rad. Pre svega sa Netbeansovim GUI-jem.
[ kobrejabre @ 03.03.2006. 00:24 ] @
Ili predji na eclipse ;)
[ Dragi Tata @ 03.03.2006. 13:57 ] @
Citat: degojs: A da li je cela aplikacija radjena u C++ ili su samo neki kriticniji delovi odradjeni tako?
Cela u C++u. U stvari, to je vrlo specijalizovan http server.
[ pcaca @ 04.03.2006. 22:20 ] @
Novi C++ standard koji je u razvoju (C++0x), a bice spreman oko 2009 godine donece mnoga poboljsana posebno oko generickog programiranja. Neke informacije koje je napisao kreator C++-a Bjarne Stroustrup mozete pogledati na:
http://www.artima.com/cppsource/cpp0x2.html
U novog standarda pominje se GC kao deo standarda. A jedan od glavnih ciljeva je da se pojednostavi kod i da C++ bude sto laksi za ucenje i odrzavanje. Kao primer je naveden novi tip auto.
[ Dragi Tata @ 04.03.2006. 22:43 ] @
Citat: pcaca: Novi C++ standard koji je u razvoju (C++0x), a bice spreman oko 2009 godine donece mnoga poboljsana posebno oko generickog programiranja. Neke informacije koje je napisao kreator C++-a Bjarne Stroustrup mozete pogledati na:
http://www.artima.com/cppsource/cpp0x2.html
Da, ako pogledate diskusiju o tom članku, primetićete da je nas nekoliko manijaka uspelo da iznervira poslovično strpljivog i učtivog Bjarrneta kuknjavom kako se C++ znatno sporije razvija od kako je standardizovan ;)
Ugllavnom, nova verzija standarda stvarno donosi lepe stvari, ali će proces standardizacije trajati bar do 2009-te, a posle toga proizvođači kompajlera tek treba da sednu i da implementiraju novi standard. Da vas podsetim da je prvi C++ standard usvojen 1998-e, a danas postoji svega 1 (jedan) kompajler koji je u potpunosti kompatibilan sa njim (Comeau C++)
[ x VITA x @ 05.03.2006. 02:59 ] @
ma nista od toga :)
do tada ce vec nesto novo da se pojavi ... :)
[ NikolaVeber @ 05.03.2006. 11:55 ] @
Ne teram mak na konac, ali otvorih sad ebay.com i u gornjem desnom uglu, ispod polja za pretragu videh nesto sto pre nisam primecivao: Java Technology, powered by SUN :)
[ Dragi Tata @ 05.03.2006. 13:45 ] @
Citat: NikolaVeber: Ne teram mak na konac, ali otvorih sad ebay.com i u gornjem desnom uglu, ispod polja za pretragu videh nesto sto pre nisam primecivao: Java Technology, powered by SUN :)
Izgleda da su uveli Javu relativno nedavno. Kad sam se interesovao za promenu posla, i gledao eBay, tražili su samo C++. Sad im je tipična pozicija:
• BS/BA in CS or related field.
• 8+ years experience in requirements analysis, design, coding and unit testing of scalable, distributed, fault-tolerant applications in NT and UNIX environments.
• Expertise required in object-oriented design methodology and application development in C++, Java and J2EE, including servlets, JSP, Java Beans, EJB, JMS, RMI, JDBC.
• Project experience with IBM WebSphere or other J2EE application servers required.
• Working knowledge of relational databases (prefer Oracle), ISAPI, HTTP/HTML, XML, XSLT and basic NT/UNIX system administration.
• Proven results oriented person with a delivery focus.
Koliko vidim, sign-on im je i dalje u C++u: klikni na sign-on link i primetićeš nešto kao:
https://signin.ebay.com/ws/eBa...voritenav=&migrateVisitor=
Obrati pažnju na eBayISAPI.dll - to je ISAPI ekstenzija koja se pravi u C++u.
[ Dejan Lozanovic @ 29.10.2006. 09:27 ] @
Citat: obucina
Naravno. U pitanju su C i C++. Zasto su bolji od Jave? Brzi su i mocniji. Ko kaze? Hm...
Oracle DB Server
MSSQL DB Server
Interbase DB Server
Firebird DB Server
MySQL DB Server
Malo samo da dolijem ulja na vatru :)
http://www.h2database.com/
[ Jcod3r @ 17.11.2006. 22:20 ] @
Neuk sam za oba jezika ali znam chitati ponude za poslove :)
Naime Java je trenutno u france zastupljena oko 70% dok u ostale ponude spadaju C++ C# ...
Samo josh nesto, kada smo upisali fax imali smo na umu dobro plachen posao po zavrsetku istog:)
Hvala, a sada prognoza vremena:)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|