[ toxi_programer @ 01.07.2007. 16:38 ] @
Obzirom da sam mladjani i neiskusani školarac :) imam ovu dilemu. Da pojasnim - interesuje me da li će kombinovanje ova dva jezika dovesti do boljih performasni rada programa. Naime, obzirom da Managed C++ nema RAD alat a C# ima( a i brže mi da pišem kod u C#u) ja interfejs programa i još dosta stvari pravim u C# jeziku ali ipak neke klase( koje na primer sadrže neke "teže" algoritme i tako to) napišem u MC++u i sačuvam ih u vidu DLL-a i onda taj DLL referenciram iz C# da bih u C# koristio, jelte, tu klasu koju sam smestio u pomenuti DLL.

Da li je ovo pametno ili bi ipak bilo bolje( u pogledu performansi samog programa) da se sve radi u jednom jeziku? Ja ipak mislim( nadam se :) ) da MC++ov kompajler pravi nešto brži kod...? Ono zbog čega ja ovo ponekada radim je to što na taj način forsiram upotrebnu oba jezika a ne samo jednog.

Još jedna stvar, da li bi mogli da mi preporučite neki program koji meri dužinu izvršavanja programa?
[ toxi_programer @ 02.07.2007. 21:58 ] @
Prinuđen sa da vežem dve uzastopne poruke...
Evo da generalizujem pitanje - kada je bolje primenjivati Managed C++ a kada C#? Znate li neki link gde se upoređuju ovi jezici?
[ jablan @ 02.07.2007. 22:07 ] @
U C++ pređeš kad vidiš da C# nešto radi suviše sporo, a siguran si da nije do tvog algoritma. Ne ranije.
[ IdeaR @ 02.07.2007. 23:43 ] @
Ustvari, ono što se čini sporim u .NET jeste UI. Sve ostalo je nebitno -da li je neki algoritam brži u MC++ ili C#, -
čisto sumnjam da ima neke veze za veliku većinu aplikacija.

Bila su neka upoređivanja C++ i C#, i kao za neke algoritme je C# bio i brži. Probaj prvo http://www.red-gate.com/products/ants_profiler/ .
[ mmix @ 03.07.2007. 12:21 ] @
Citat:
IdeaR: Ustvari, ono što se čini sporim u .NET jeste UI. Sve ostalo je nebitno -da li je neki algoritam brži u MC++ ili C#, -
čisto sumnjam da ima neke veze za veliku većinu aplikacija.
Bila su neka upoređivanja C++ i C#, i kao za neke algoritme je C# bio i brži. Probaj prvo http://www.red-gate.com/products/ants_profiler/ .


Iz ovih razloga je poredjenje managed C++ i C#-a malo beskorisno, na kraju krajeva managed c++ proizvodi IL kod isto kao i C# i prolazi kroz JIT. Poredjenje koji vi ti trazite je u stvari izmedju unmanaged C++ i c# (ili drugog NET jezika), gde bi se dobila prednost izmedju egzaktnosti native C++ kompajlera i ogranicenih konstrukcija JIT kompajlera u NETu. Veoma je vazno ovde razumeti da poziv unamanged koda iz C# aplikacije donosi svoja usporenja (interop marshaling), tako da npr zamena jednog metoda sa C++ ekvivalentom moze da ispadne i dosta sporije ako je vreme potrebno da se parametri metoda marshaluju vece od ustedjenog vremena.

Drugo ne slazem se sa tvojom GUI konstatacijom, ne znam da li je neko ikad to merio konkretno, ali krajnjem korisniku uopste nije vazno da li ce se meni prikazati za 0.1s ili 0.2s, ali u programu koji radi 5 miliona iteracija monte-karlo simulacije (sto npr (re)osiguravajuce kuce rade non-stop), veoma je vazno da li simulacija traje 2 sata ili 3 sata. U takvim situacijama i te kako ima smisla razmatrati C++ opciju.
Drugi aspekt je decompiling. Iako postoje obfuskatori za NET, iskusnim "predanim" ljudima nije testko da obfuskaciju zaobidju. Kako god da obrnes reinzenjering native C++ koda je tezi od reinzenjeringa IL koda. Medjutim, ovaj aspekt je prisutan samo u manjoj meri, jer itekako postoje ljudi kojima analiza asemblerskog koda ne predstavlja nikakav problem, pitanje je samo dal ce neko takav da se smara bas mojim i tvojim programima.
[ IdeaR @ 03.07.2007. 13:32 ] @
Citat:
mmix:
Drugo ne slazem se sa tvojom GUI konstatacijom, ne znam da li je neko ikad to merio konkretno, ali krajnjem korisniku uopste nije vazno da li ce se meni prikazati za 0.1s ili 0.2s...


Ovo je naravno moja "apsolutno" subjektivna i paušalna ocjena;), ali meni je odvratno kako se ponašaju Winforms aplikacije.
Da su .NET framework na desktopu napravili kako treba većina novih korisničkih aplikacija danas bi bila u managed kodu.
Ali, eto, mašine su brže i brže, pa se sve manje primjeti.

[ mmix @ 03.07.2007. 16:46 ] @
Citat:
IdeaR: Ovo je naravno moja "apsolutno" subjektivna i paušalna ocjena;), ali meni je odvratno kako se ponašaju Winforms aplikacije.


Hehe, ako ti je winforms spor, cek da vidis WPF ;)
[ Dragi Tata @ 03.07.2007. 17:30 ] @
Jedina stvarno dobra upotreba za Managed C++ (tj sad C++/CLI) koju sam ja video je kad imaš veliki codebase u (običnom) C++u koji želiš da iskoristiš iz C#a. Inače, što se ubrzanja tiče, C++/CLI navodno pravi bolji IL nego C#, ali ne znam koliko je to uopšte relevantno.