Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razlika u brzini između C++ i Jave

[es] :: Java :: Razlika u brzini između C++ i Jave

Strane: 1 2 3

[ Pregleda: 15402 | Odgovora: 54 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bmcvetic
Cvetic Branko
Beograd

Član broj: 45488
Poruke: 71
*.dialup.sezampro.yu.



+1 Profil

icon Razlika u brzini između C++ i Jave27.02.2006. u 00:58 - pre 174 meseci
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
 
Odgovor na temu

x VITA x
Beograd

Član broj: 41277
Poruke: 57
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 09:17 - pre 174 meseci
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...


UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. - Dennis Ritchie
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723



+7 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 09:47 - pre 174 meseci
@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.
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.leased.neobee.net.



+1 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 09:54 - pre 174 meseci
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?
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 8148
*.lukoil.co.yu.



+9564 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 12:38 - pre 174 meseci
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 !
Pametni ljudi su uvek puni sumnji. Samo su budale uvek savršeno sigurne.
 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
..shall-bg.customer.sbb.co.yu.

ICQ: 60630914


+1 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 14:22 - pre 174 meseci
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]
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 15:04 - pre 174 meseci
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.

 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
..shall-bg.customer.sbb.co.yu.

ICQ: 60630914


+1 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 15:49 - pre 174 meseci
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).
 
Odgovor na temu

neetzach
LDAP specialist, Qindel
Iberija

Član broj: 4825
Poruke: 616
*.sun.com.

Sajt: www.udarnik.net


+4 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 15:51 - pre 174 meseci
Ili staviti vise memorije
What I hear, I forget. What I see, I remember. What I do, I understand. What I screw up, I
master.
 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
..shall-bg.customer.sbb.co.yu.

ICQ: 60630914


+1 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 15:55 - pre 174 meseci
ili postati pointy-haired boss (PHB). ;)

[Ovu poruku je menjao caboom dana 27.02.2006. u 17:07 GMT+1]
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.ETF.BG.AC.YU.

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 16:09 - pre 174 meseci
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 70k­entry 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 so­called ``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.
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

caboom
Igor Bogicevic
bgd

Član broj: 255
Poruke: 1503
..shall-bg.customer.sbb.co.yu.

ICQ: 60630914


+1 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 16:58 - pre 174 meseci
... 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]
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 17:28 - pre 174 meseci
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.
 
Odgovor na temu

MadTexel
Beograd

Član broj: 5611
Poruke: 33
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 18:52 - pre 174 meseci
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.
One word, one instruction, one cycle. RISC.
 
Odgovor na temu

x VITA x
Beograd

Član broj: 41277
Poruke: 57
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 18:55 - pre 174 meseci
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...
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. - Dennis Ritchie
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
195.246.3.*



Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 20:35 - pre 174 meseci
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.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 21:04 - pre 174 meseci
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š :)
 
Odgovor na temu

MadTexel
Beograd

Član broj: 5611
Poruke: 33
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 21:27 - pre 174 meseci
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.
One word, one instruction, one cycle. RISC.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723



+7 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 22:16 - pre 174 meseci
@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]
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Razlika u brzini između C++ i Jave27.02.2006. u 22:43 - pre 174 meseci
@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]
Commercial-Free !!!
 
Odgovor na temu

[es] :: Java :: Razlika u brzini između C++ i Jave

Strane: 1 2 3

[ Pregleda: 15402 | Odgovora: 54 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.