Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

MS DOTNET Prednosti i mane, misljenja, analize, dokazi

  • 199 odgovora
  • 46.281 pregleda

Najnovija ↓

Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 13:57 · pre 191 mesec #101
@dejanet,

Tacno - ali fakat da se web aplikacije pisu i u kojekakvim PHP-ovima i sl... dakle glorifikovanim skriptovima pokazuje da su to aplikacije gde nije ni bitno izvuci 100% performansi iz sistema, vec su prioriteti sasvim druge prirode.

Naravno da je u takvom slucaju daleko bolje koristiti nesto jednostavnije od C++-a, i to definitivno niko ne spori.

Sama cinjenica da jedan PHP radi posao je valjda dovoljna ;-)

Medjutim ja mnogo puta cujem tvrdnje kako su Java/.NET po performansama ekvivalentni C/C++ kodu pa evo i na ovoj temi i to mi je nesto sto nikako ne mogu da skapiram - ako je tako, zasto onda ljudi i dalje koriste native kod kada su performanse bitne ;-)

Da prostite, to mi sve zvuci kao veciti vlazni san o masini koja menja coveka... samo se menjaju akteri.

Eto sada je to "svepametni JIT" koji menja kvalitetnog programera... stvarno odlicno zvuci :)

Super, onda me uputite, molim vas, na neki 3D engine, codec, algoritam za prepoznavanje ili sintezu govora, OCR-ovanje i sl... koji je napisan u .NET-u i Javi i koji slovi za "state-of-the-art" po performansama na desktop masinama.
Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 13:58 · pre 191 mesec #102
Pisanje aplikacije u c-u ne garantuje apsolutno nista po pitanju perfomansi..

Evo jedan primer je igrica Civilization V, pisana u c++, a total sh*t&djubre po pitanju performansi, a visoko kotirana, spucano brdo para, dev. tim su mogli da biraju..
na kraju ova shahovska aplikacija radi sporije od crysis..
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:03 · pre 191 mesec #103
Ko je rekao da C garantuje performanse? Pa ni masinski kod ne garantuje performanse... ono od svega se moze napraviti bloat i beda.

Medjutim, C/C++ ti >OMOGUCAVA< da pises kvalitetan i brz kod, i ne OGRANICAVA te idiotskim ogranicenjima jezika i vestackim limitacijama koje su samo tu zato sto je neko m00do u MSFT-u ili Oracle-u smatralo da to tako treba.

Dakle, kakve god ti optimizacije padnu na pamet, to mozes da uradis - a C/C++ su na dovoljno visokom nivou da omogucavaju i jako dobru apstrakciju stvari - dakle nisu asembler i ne usporavaju ljude sa redudantnim stvarima. Gle cuda, i na C/C++ imas milion "frameworka", model-view kontrolera pa i RAD alata za "crtanje" GUI-ja.

Za razliku od C/C++ u tim managed zatarabljenim jezicima ti je pola stvari zabranjeno - i jos ako neko pita, odmah se nadje armija advokata i fanboy-a da ti kaze kako si TI zapravo u krivu, i kako "tako treba"...

Mislim, odmah ti je jasno kada neko krene da mase rukama i da tvrdi da "nesto tako treba" da tu stvari nisu ciste. OK, masina te smatra majmunom zato sto je neko rekao da i majmun treba da bude u stanju da programira, pa ga treba spreciti da majmunise u kodu... razumem, sve jasno... ali nemojte to nazivati podjednako dobrim resenjem.

Nazovite ga pravim imenom - jezik za buducnost, buducnost gde zaista moze da se postane developer za 21 dan. Sve OK - i to ima svoje prednosti, ali performanse nisu jedna od njih.
Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Sviđa mi se1
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:11 · pre 191 mesec #104
Citat:
Ivan Dimkovic: Medjutim, C/C++ ti >OMOGUCAVA< da pises kvalitetan i brz kod, i ne OGRANICAVA te idiotskim ogranicenjima jezika i vestackim limitacijama koje su samo tu zato sto je neko m00do u MSFT-u ili Oracle-u smatralo da to tako treba.

Dakle, kakve god ti optimizacije padnu na pamet, to mozes da uradis.


Pa, čak i da imaš svoj alokator memorije i to prilagođen za svaku klasu.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:15 · pre 191 mesec #105
Citat:
Ivan Dimkovic: 
Medjutim ja mnogo puta cujem tvrdnje kako su Java/.NET po performansama ekvivalentni C/C++ kodu pa evo i na ovoj temi i to mi je nesto sto nikako ne mogu da skapiram - ako je tako, zasto onda ljudi i dalje koriste native kod kada su performanse bitne ;-)


Pa razlike su recimo 10-40% sporiji kod za razliku od native , ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne. Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici. A da ne pricamo kako su neke stvari mnogo lakse uraditi u javi/.NET-u nego u C++, samo cu da kazem rec plugin pa se mnogim C/C++ dize kosa na glavi kad to moraju da imaju u programu. Dok na ovim "monkey do" jezicima imas interface i preko refleksije instanciras klasu. Znaci sta si u sustini menjao konfor lakocu programiranja sa performansama.
Potpis
http://speedy-order.com
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:18 · pre 191 mesec #106
Upravo... ako mi treba, 'cu da ga napravim - ne zelim da mi neko objasnjava kako ja ne smem da diram memoriju direktno jer... (mahanje rukama) to nije dobro.

Citat:
Dejan
Pa razlike su recimo 10-40% sporiji kod za razliku od native , ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne. Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici. A da ne pricamo kako su neke stvari mnogo lakse uraditi u javi/.NET-u nego u C++, samo cu da kazem rec plugin pa se mnogim C/C++ dize kosa na glavi kad to moraju da imaju u programu. Dok na ovim "monkey do" jezicima imas interface i preko refleksije instanciras klasu. Znaci sta si u sustini menjao konfor lakocu programiranja sa performansama.


Neke stvari nisu lakse u .NET-u vec su zbog vestackih ogranicenja mnogo teze.

Obicno to udara kada bas treba i da mislis o performansama... ali zbog cinjenice da dobar deo sveta kaze ovo:

Citat:

Rado cu se odreci tih 10-40% za ustedu da ne moram da mislim o desktruktorima i pointer aritmetici


Taj problem se precutkuje u horu hvalospeva za "lakse programiranje".


Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:28 · pre 191 mesec #107
Citat:
Dejan Lozanovic: Pa razlike su recimo 10-40% sporiji kod za razliku od native, ranije su bile cifre 10-40x sporiji u tom smislu kazem da su performanse ekvivalentne.


I tata bi sine, ali ne može tako jeftino sa 10-40%. Na šta se pozivaš sa takvim ciframa?
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:38 · pre 191 mesec #108
Citat:
Ivan Dimkovic: 
Taj problem se precutkuje u horu hvalospeva za "lakse programiranje".


Which brings me to another question. Ovaj će post možda moderatori obrisati, ali zanima me, s obzirom na sve što ste rekli, treba li novajlije gurati u .net framework?
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 14:57 · pre 191 mesec #109
Precenjujete 'mlade' programere, narocito u danasnjem svetu gde neretko diplomac nekog it smera ne zna da nabroji 5 osnovnih data tipova ..

A u paklu it implementacije b.logike za srednju firmu,sa osrednjim dev. timom, pomoc oko npr. garbage collectora(jvm||.net) je dobrodosla..
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 15:11 · pre 191 mesec #110
Ivane, u cemu si ti zapravo ogranicen u .NETu? Brkas .NET sa teletabis silverlightom/WP7 i javom.


Ko je to rekao i sta ti je zapravo zabranjeno? Uopste mi nije jasno zasto i na osnovu cega sumnjas u podudarnost krajnjeg native proizvoda? Pogledaj malo native kod iz JITa i iz C++ kompajlera, tu nema neke velike filozofije, for petlja je for petlja. Postoje samo dve stvari koje usporavaju .NET aplikaciju. Prva je GC latency (ukljucjuci i checkup pozive), druga je sam FCL koji nije pisan za performanse vec za funkcionalnost (array nije samo niz vrednosti). Oba dolaze do izrazaja kad koristis FCL Math u milionski iterativnim izracunavanjima (>O(n)) kakva su UVEK po pravilu ova benchmarking merenja. Prvo (GC latency) je drasticno poboljsano u .NET4 (pod uslovom da vec nisi koristio concurency multi-core GC) ali eto, ako ce ti srce biti na mestu i ja mislim da IL-u nedostaje "CPU critical" sekcija u kojoj bi mogao da suspendujes native check pozive u GC i za koji bi ti JIT napravio potpuno lean code. Isto su mogli da ostave vise prostora da tweakujes JIT optimizacije ali eto sa njihovog stanovista oni smatraju da bi time samo usporio program jer oni JITuju shodno optimalnim vrednostima za masinu na kojoj je runtime instaliran (nasuprot compile time optimizaciji C++ koja ne uzima u obzir varijetete u runtime okruzenjima).
Iz nekog razloga MS je vise zauzet pravljenjem dodatnih nivoa apstrakcije i ja im tu ne mogu nista, i njihov zvanicni stav je da ako ti GC smeta kriticne sekcije koda odradis u unmanaged delu. Ocigledno je da njihovo vidjenje buducnosti ne podudara sa tvojim i da oni smatraju da FCL ne mora da bude optimizovan i da buducnost desktop aplikacija nije u 100% lean&mean aplikacijama i da ne vredi gubiti vreme perfeksionisanjem koje kaci 1% upotreba.

Realno, za Windows ili ces preci na .NET ili ces ostati na GDI+ emulaciji. AKo hoces direktan input u desktop composition i bells and whistles na Win7+ bices na .NETu ili ces biti na .NET i deloma na C++/CLI-u. Ne razumem bas ni tvoj komentar za milcore.dll, on nikad ni nije predvidjen za direktno linkovanje user aplikacija niti je imao public API, sta vise u Windows 7/2008r2 ga vise nema uopste i njegova funkcionalnost je pretopljena u druge dllove. Tvoja WPF aplikacija je nesvesna svega toga jer je na visti presentationcore.dll wrapovan oko milcore, na Windows 7 oko PresentationNative_v0400, a tvoja aplikacija radi bez izmena. Vremena se menjaju i menja se i GUI engine, WPF je po meni mnogo vise prilagodjeniji desktopu od GDIa, ono sto je sprecilo tranziciju pre 4 godine je bila idiotarija od viste i odbijanje ljudi da predju sa XPa (na kojem je situacija potpuno obrnuta i na kojem je WPF spor kao puz jer radi preko softverske emulacije unutar GDI+). Windows 7 ne pati od tih problema i sve vise ljudi prelazi na 7-u i samim tim ce i broj aplikacija koje se rewrituju na WPF polako povecavati. Do windows 7 ni paint nije bio .NET, sad jeste. Zao mi je ako vam se to ne svidja ali doba bitmapiranih user kontrola je gotovo, a bice veoma tesko napraviti pure native aplikaciju koja ce raditi direktno sa WDMom => GDI emulacija. Posto se WPF primitive na kraju svode na native DX primitive wpf aplikacija na win7 ce uvek imati brzi UI i lepse ce izgledati i imace vise opcija za prezentaciju i polako ce istisnuti winforms, a i ostale ne-NET GDI based frameworke kao sto su MFC, Qt, itd. Hoce li ljudi deinstalirati windows zbog ovoga? Nema sanse.

I ko kaze da ne smes da diras memoriju? Tu su unsafe i fixed, mozes da radis sa njima sta hoces (sa tim sto si ponovo preuze na sebe rizik pointer aritmetike), cak mozes i da menjas immutable stringove.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Sviđa mi se1
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:02 · pre 191 mesec #114
Ma, nije valjda! Akaće se neko oko 2%. Kako da ne. Pa, hajde da se onda to sve piči u asembleru! Ma, da nije možda 2222% u pitanju?
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:06 · pre 191 mesec #115
Citat:
Nedeljko: Pa, evo šta je zabranjeno - da isključiš GC i napraviš svoj alokator za tačno određenu klasu.

Nije zabranjeno per se vec je nemoguce. U cemu bi bila svrha postojanja managed objekta van managed heap-a? Gde bi konstruktor te klase alocirao svoje managed reference? Kako bi GC znao da ih kolektuje? Cela poenta alokatora koliko se ja secam (a ispravite me) je bila da se omoguci alternativa heap alokaciji i brze, manje fragmentisano i zbijenije alociranje grupa malih, kratko zivecih objekata. CLR vec obavlja sve te funkcije kroz generacijski GC, separaciju small i large object heapova i JIT locality trikovima sa kontejnerima.
Citat:
Nedeljko: @mmix Dobro, zašto se CPU/GPU zahtevne stvari rade native?

Latency, .NET nije real time platforma, nema garancija da GC nece blokirati thread bas kad ti je najkriticnije tako da nemas garantovano vreme odziva bez obzira na jacinu platforme, sto generalno pravi problem ako su zahtevana vremena odziva bas mala. Ja se iskreno nadam da ce na tome poraditi pre ili kasnije (Singulairty mi je bio nada uzdanica, ali se to nekako oladilo). Sve ostalo je pojeo moore, nekad nisi mogao da dekodiras SDTV divx bez lean/mean kodeka, danas moja masina dekodira i renderuje fullhd sa 4% jednog jezgra a ja imam midrange masinu sada. Da li mislis da bi predstavljalo problem da je 50% sporiji (6%) sa managed kodom? A kad bi se uradio kako treba ne bi bio 50% sporiji.
Drugi problem su specificna procesorska zezancija, npr banalan primer SSE.
JIT ce koristi SSE kad otkrije da SSE moze da ubrza operaciju, ali ne moze da otkrije "big picture" grupe blok operacija. C++ koder to moze koristeci intrinsic SSE operacije. Medjutim ovaj problem je vise vezan za optimizaciju samog JITa isvaka sledeca genracija JITa je sve optimizovanija i generise brzi kod. Sa druge strane JIT ce na SSE2 procesoru iskoristiti SSE2, a C++ program pisan sa SSE nece iskoristiti to dok se program ne preradi i ne rebilduje. Nekom nesto, nekom nesto :)
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:45 · pre 191 mesec #116
Citat:
mmix: Nije zabranjeno per se vec je nemoguce. U cemu bi bila svrha postojanja managed objekta van managed heap-a? Gde bi konstruktor te klase alocirao svoje managed reference? Kako bi GC znao da ih kolektuje? Cela poenta alokatora koliko se ja secam (a ispravite me) je bila da se omoguci alternativa heap alokaciji i brze, manje fragmentisano i zbijenije alociranje grupa malih, kratko zivecih objekata. CLR vec obavlja sve te funkcije kroz generacijski GC, separaciju small i large object heapova i JIT locality trikovima sa kontejnerima.


OK, promeni GC algoritam za neke klase. Ma, da CLR već ima algoritam koji je univerzalno najbolji u svim situacijama. Džaba što se ljudi ubiše da nađu podesne algoritme za specifične situacije, kad CLR ima najbolji nenadjebivi algoritam.

Citat:
mmix: Latency, .NET nije real time platforma, nema garancija da GC nece blokirati thread bas kad ti je najkriticnije tako da nemas garantovano vreme odziva bez obzira na jacinu platforme, sto generalno pravi problem ako su zahtevana vremena odziva bas mala.


Ko govori o real time aplikacijama? Je li PhotoShop real time aplikacija? Da, ima zahtevne operacije, ali nije real time.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:47 · pre 191 mesec #117
Dosta ljudi trolovanja. Neka neko napiše kod koji je jedan na jedan prevod sa jednog jezika na drugi, pa da vidimo. Ako niko drugi neće, evo ja ću. Batalte flejm, dajte testove.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:48 · pre 191 mesec #118
Citat:
mmix
. Da li mislis da bi predstavljalo problem da je 50% sporiji (6%) sa managed kodom? A kad bi se uradio kako treba ne bi bio 50% sporiji.


Odlicno... gde su ti silni codeci pisani u .NET-u onda?

Mislim ako nije problem...

Meni je bas drago sa jedne strane sto se industrija sada fokusira na low-footprint / low power sisteme za kucu... cisto da se vidi koliko je car go. Posto baterije ne napreduju po murovom "zakonu".

Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:57 · pre 191 mesec #119
Ivane, kodeci su real time, a mmix se od toga ogradio.

Nego gde su npr. kripto cypher-i ili ozbiljne grafičke aplikacija u gnjavama i dot njetovima? To nije real time.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: MS DOTNET Prednosti i mane, misljenja, analize, dokazi 28.01.2011. u 16:59 · pre 191 mesec #120
Citat:
Nedeljko: Dosta ljudi trolovanja. Neka neko napiše kod koji je jedan na jedan prevod sa jednog jezika na drugi, pa da vidimo. Ako niko drugi neće, evo ja ću. Batalte flejm, dajte testove.


eno ti http://sortbenchmark.org/ , hadoop (java map/reduce framework) najbze sortira 100 TB podataka, i najvise podataka sortira za 1 minut. Ej java :) ta troma spora kanta.
Potpis
http://speedy-order.com
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme