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

Microsoft otvorio .NET

[es] :: Advocacy :: Microsoft otvorio .NET

Strane: < .. 1 2 3

[ Pregleda: 13496 | Odgovora: 44 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Microsoft otvorio .NET04.02.2015. u 13:22 - pre 111 meseci
Citat:
Moguce je da propustam nesto, ali ja ne vidim nista sustinski drugacije sto bi JIT kompajleru dalo neku prednost.
Jedina stvar koju vidim kao prednost je ta sto JIT ima prednost sto je bare-metal kod moze biti uvek prilagodjen platformi na kojoj trci posto se bare-metal kod generise na toj masini, ali osim toga ne vidim nista drugo.


Upravo to. Malo li je? Trenutno, C++ kompajleri generisu kod koji je univerzalan* i namesten tako da radi na svakoj windows platformi i svakoj konfiguraciji i na sirokom spektru Windows OS-ova (i tu pricamo samo za Win, kad dodas lindzu situacija se jos komplikuje). JIT ne mora da postuje nista od toga i moze i prilagodjava izlaz (mislim da je strucan termin "lowering") svim tim parametrima. Izmedju ostalog moze mnogo bolje da reorderuje instrukcije da bi iskoristio i olaksao superskalarnu obradu i minimizovao wait-states, sto je manje vise procesor generation specific.
Sta vise, po defaultu svi managed asembliji za .NET su "Any CPU" vs x32 ili x64, sto znaci da JIT isti executable cak optimalno loweruje na dve razlicite arhitekture sto CPP, bar koliko ja znam, ne moze. Druga prednost koju JIT ima je sto bare-metal kod generise iz CIL bytecoda, koji je jednom vec optimizovan high-level i sto ga JIT moze optimizovati jos jednom koristeci cinjenicu da je kompleksnost CILa daleko manja od kompleksnosti visih jezika pa je i scope/locality of reference bolje definisan i laksi za optimizaciju. U tom je glavna prednost MS JITa nad Java JIT-om i Mono JIT-om, druga dva su manje vise mapiranje interpretatorskog koda u bare metal, otprilike u rangu debug+unoptimized koda sa MS JITa.
Itd, iskreno, ni je ne znam sve tehnike koje koriste, planiram da malo analiziram ovaj novoobjavljeni kod da vidim sta se sve krije tu

Jbg, nesto su morali da ubace u tih 320.000 linija koda koliki je JIT.

Ono gde generalno .NET aplikacija pocinje da gubi trku su heavy-alloc/dealloc aplikacije sa velikim alokacijama, generalno GC based alloc je dosta skuplji od prostog malloca. Mada se to drasticno popravilo od prvog .NETa, i moze da se minimizuje uz malo vecu potrosnju memeorije koriscenjem ServerGC konfiguracije.

* sam stavio zato sto pricamo o default upotrebi, naravno postoje specijalizovani C++ kompajleri i podesavanja u generickim kompajlerima za odredjene platofrme u kom slucaju C++ opet ima konkretnu prednost po nekoliko osnova. ALi takve situacije su retke izvan nekih specijalizovanih inhouse projekata.



Citat:
Sto se Microsofta tice, strategija open sourcovanja komponenti je lepa vest i bilo bi super kada bi OSS-vali i Windows kernel (u 2015-toj godini OS kernel nije nikakav competitive advantage) i fokusirali se na servise ali sumnjam da ce tako nesto biti moguce uskoro uzevsi u obzir kompanijski mindset.


Polako, nije to jos iskljuceno. Iskreno, ako propadne ovaj "prinudni" upgrade sa 7/8.1 na 10, to ce biti sledeci korak u pokusaju da "konvergiraju" platforme. Ili to ili ce biti freeware. Ono, mozda ce ljudi da uzmu ako je dzabe... Ali samo mozda.
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ć
 
Odgovor na temu

Texas Instruments

Član broj: 227540
Poruke: 272
82.117.201.*



+61 Profil

icon Re: Microsoft otvorio .NET04.02.2015. u 14:00 - pre 111 meseci
Prednost JIT-a je i što ima uvek ima informacije iz runtime-a, za razliku od statički kompajliranih programa, pa tako može da odluči koji deo programa može da optimizuje (recimo neki standardan prolaz kroz grananja, ne treba optimizovati sve grane) ili koje metode može da inline-uje. Naravno, za ovo sve treba vremena, zato se i dešava da ovakve .net/java aplikacije izvršavaju znatno sporije u početku, dok se virtuelna mašina "ne zaleti".
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
...kabel-badenwuerttemberg.de.



+7169 Profil

icon Re: Microsoft otvorio .NET04.02.2015. u 14:31 - pre 111 meseci
@mmix,

Slazem se da JIT ima tu prednost sto je kod uvek prilagodjen masini.

Ali ako gledamo PC, novu arhitekturu procesora imamo jednom u 2 godine - moderni C/C++ kompajleri imaju opcije za dinamicko odabiranje verzije koda da koriste, prilagodjene za odredjenu arhitekturu. Prakticno ako jednom u 2 godine osvezis svoje binarne fajlove, mozes i sa vec kompajliranim kodom da postignes istu stvar.

32-bit vs. 64-bit je definitivno prednost, ali ne u performansama.

Citat:

Druga prednost koju JIT ima je sto bare-metal kod generise iz CIL bytecoda, koji je jednom vec optimizovan high-level i sto ga JIT moze optimizovati jos jednom koristeci cinjenicu da je kompleksnost CILa daleko manja od kompleksnosti visih jezika pa je i scope/locality of reference bolje definisan i laksi za optimizaciju.


Hm, koliko mi je poznato (nemam bas iskustva sa kompajlerima) to danas rade i neki moderni "obicni" kompajleri kao LLVM.

LLVM prihvata intermediate-level kod (IR) i od GCC-a i onda mozes da izaberes da li hoces da ga potpuno iskompajliras na bare-metal za vreme produkcije, ili da se IR kod finalizuje sa JIT-om kod korisnika.

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
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Microsoft otvorio .NET04.02.2015. u 22:58 - pre 111 meseci
S tim sto to nekko mora manuelno da radi i odrzava .NET DLL je .NET DLL i nema vise kompajliranja i cimanja

Cuj, ja znam da ti mozes da petljas C++ do u sitna crevca i da uvek izadje za neku meru bolji od .NETa, ali taj dobitak vise nije cost effective kao sto je nekad bio. .NET je jednostavno hassle free za komparativne performanse. Postoji jos sijaset ssitema koji funkcionisu po principu intermediary koda, ali ono sto generalno izdvaja MS CLR je ta optimizacija koja je uradjena fenomenalno.

Citat:
Texas Instruments:
Prednost JIT-a je i što ima uvek ima informacije iz runtime-a, za razliku od statički kompajliranih programa, pa tako može da odluči koji deo programa može da optimizuje (recimo neki standardan prolaz kroz grananja, ne treba optimizovati sve grane) ili koje metode može da inline-uje. Naravno, za ovo sve treba vremena, zato se i dešava da ovakve .net/java aplikacije izvršavaju znatno sporije u početku, dok se virtuelna mašina "ne zaleti".


TO je Java/NetBeans pristup, .NET ne radi tako, JITovanje se radi na nivou asemblija, tj modula. U trenutku kad se desava lowering sva optimizacija je vec gotova. Zadrska pri startup-u je upravo zbog toga sto JIT mora da odradi main executable i sve staticki referencirane asemblije.


[Ovu poruku je menjao mmix dana 05.02.2015. u 00:17 GMT+1]
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ć
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.web.vodafone.de.



+7169 Profil

icon Re: Microsoft otvorio .NET06.02.2015. u 18:32 - pre 111 meseci
Citat:
mmix
Polako, nije to jos iskljuceno. Iskreno, ako propadne ovaj "prinudni" upgrade sa 7/8.1 na 10, to ce biti sledeci korak u pokusaju da "konvergiraju" platforme. Ili to ili ce biti freeware. Ono, mozda ce ljudi da uzmu ako je dzabe... Ali samo mozda.


Heh, secam se pre nekoliko godina, dok je Server 2003 R2 bio mainstream, mogao si da iskompajliras WRK kernel u Visual Studio-u - neko je cak napravio i solution file (doduse, solution je koristio eksterni makefile - NT kernel koristi DDK toolchain).

Kul je stvar sto si prakticno mogao da menjas f-je u kernelu kako ti odgovara, sto je jako lepo za eksperimentisanje a i debugging ako radis neki low-level softver.

Na zalost, Microsoft nikada nije osvezio WRK posle verzije 1.2 - bar da su ga osvezili sa 6.0 kernelom, koji je doneo dosta novih stvari.

Koliko se secam, nekim likovima je uspelo da naprave neki frakenstajn, uz kombinaciju procurelog NT4 i Win2K koda kao i WRK kernela, koji se kompajlirao i cak bootovao u emulatoru ako me pamcenje sluzi dobro.
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
 
Odgovor na temu

[es] :: Advocacy :: Microsoft otvorio .NET

Strane: < .. 1 2 3

[ Pregleda: 13496 | Odgovora: 44 ] > FB > Twit

Postavi temu Odgovori

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