Pėrshėndetje
Unė desha tė krahasoja performancėn e C# kundrejt C++ nxitur nga shumė mesazhe (kryesisht nė stackoverflow.com) qė jo vetėm dėshmonin superioritetin e C# nė performancė, por madje edhe i argumentonin tė dhėnat e tyre eksperimentale me faktin se ėshtė normale, C# optimizohet nė funksion tė procesorit target (host). Apo C# ka njė model tė mirė-definuar tė veprimeve me numrat me presje dhjetore, ndėrsa C/C++ vuajnė faktin qė duhet tė jenė backwards-compatible, ...
http://stackoverflow.com/questions/686483/c-vs-c-big-performance-difference
http://stackoverflow.com/questions/2496803/c-and-c-speed-compared
...etj.
Nė mesazhin e link-ut tė parė p.sh. testi bėhej pėrkundrejt llogaritjes nė njė loop tė sqrt().
Fillimisht versioni C/C++ ishte nja 30 herė me i ngadaltė se versioni C#, por mbas pėrpjekjeve tė personit nė fjalė pėr ta optimizuar versionin C/C++ qė tė mos bėnte figurė aq tė keqe ndaj C#, pėrfundimisht versioni C/C++ arriti tė ishte rreth 150% mė i ngadaltė se ai C#, ēka sipas autorit tė testit ėshtė e pranueshme.
Unė e bėra vetė njė test tė tillė, dhe fillimisht programi C/C++ ishte rreth 2 herė mė i ngadaltė se ai nė C#. Kjo nuk mė habiti, sepse e di qė opsioni default pėr Floating Point Model ėshtė Precise. Kėshtu qė e ndryshova nė Fast. Kėsaj rradhe tė dy programet ekzekutoheshin njėlloj.
Por diku kisha lexuar qė nė VS2010 (apo VS2008, nuk e mbaj mend) MS e kishte zvogėluar pak performancėn edhe nė rastin e opsionit Fast nė funksion tė consistency.
Kėshtu qė e kompilova me kompilatorin e Intelit, dhe pėrfundimisht versioni C/C++ u bė rreth 150% mė i shpejtė se ai C#.
Tashmė, pohime si ato mėsipėr nuk mė habisin mė. Ajo qė kam kuptuar ėshtė se ata qė bėjnė kėto pohime nuk kanė haber as tė kompilojnė njė program, dhe ndoshta njė nga arsyet pse preferojnė C# ėshtė se nuk ofron shumė opsione, e pėr pasojė mė pak gjasa tė ngatėrrohen me kėmbėt e tyre (nė rastin e shembullit, C# nuk ofron ndonjė opsion pėr FPU, por e ka tė paravendosur ekuivalentin e C++ Fast).
------------------------------------
Pėr sa i pėrket portabilitetit...
Ka dy lloj portabilitetesh: nė raport me hardware tė ndryshėm; dhe nė raport me sisteme operimi tė ndryshėm.
Por mė parė le tė biem dakord se portabiliteti nuk ka tė bėjė me faktin nėse programin duhet ta kompilosh pėr platforma tė ndryshme. Kompilimi ėshtė njė proces mekanik(d.m.th. automatik) qė kryhet nga kompilatori, pa ndonjė kosto tė perceptueshme.
Portabiliteti ka tė bėjė me faktin nėse programin
tė duhet ta (ri)shkruash pėr ēdo platformė. Kjo ka kosto.
Nė raport me hardware-in, C/C++ janė aq portable sa mė sbėhet. Me .NET-in e Java skanė tė krahasuar.
C-ja shpesh herė pėrshkruhet si portable assembler, dhe C++ ėshtė po aq portable sa C.
Arsyeja pse C/C++ janė gjuhė tė vogla, pa suport pėr threads, UI, network, etj. ėshtė pikėrisht qė tė jenė portable. Nė C/C++ mund tė programosh praktikisht ēdo lloj hardware tė programueshėm. Motorė luftanijesh, avionė, misile, robotėt pėr nė Mars, ... etj. janė programuar nė C++.
Natyrisht, hardware kaq tė ndryshėm kanė karakteristika unike, dhe ato pjesė tė programit qė trajtojnė kėto aspekte smund tė jenė portable. Por ky ėshtė njė terren ku Java e .NET nuk janė fare prezent.
Gjithashtu ėshtė e mundur qė programet C/C++ tė jenė portable edhe nė raport me sisteme tė ndryshme operimi, duke mos programuar pėrkundrejt API tė kėtyre OS-ve, por pėrkundrejt ndonjė librarie qė ofron njė interface uniforme, siē ėshtė p.sh. Qt.
Por problemi kur programon pėrkundrejt emėruesit tė pėrbashkėt tė sistemeve tė ndryshme operimi ėshtė se smund tė shfrytėzosh avantazhet unike qė ofron secili OS. Dhe kjo vlen edhe pėr Java e .NET.
Pėr sa i pėrket Java, kjo ėshtė e vetmja alternativė (tė programosh kundrejt JVM).
Nė rastin e C/C++ mund tė zgjedhėsh tė programosh kundrejt njė librarie si Qt, por nuk je i detyruar. Dhe nė fakt shumica nuk zgjedh kėtė alternativė.
Ndėrsa C# ėshtė praktikisht e lidhur mbas Windows-it. E di, ekziston edhe Mono, por tė gjithė (pėrdoruesit e .NET-it) deklarojnė se ėshtė njė implementim inferior ndaj atij tė MS.
Edhe pse njė nga avantazhet e pretenduar tė VM ėshtė portabiliteti, e vėrteta ėshtė se Java e .NET janė mė tė pėrhapur nė programimin e web-serverave dhe aplikacione biznesi.
Qė tė dy skenarė ku portabiliteti ska pikė rėndėsie!
Nė tė dy rastet numri i kompjuterave nė tė cilėt programi ka pėr tu ekzekutuar ėshtė i vogėl dhe nėn kontrollin e njė subjekti tė vetėm.
Pjesa dėrrmuese e programeve qė targetojnė konsumatorė individualė, qė pėrdorin njė larmi hardware/OS, dhe ku portabiliteti mund tė kishte domethėnie, faktikisht shkruhen nė C/C++.
Pėr sa i pėrket type-safety, Ok, C-ja nuk ka shumė pretendime, por C++ ėshtė po aq type-safe sa .NET apo Java.
GC ėshtė vetėm njė nga mėnyrat se si memoria mund tė administrohet, dhe nuk ėshtė domosdoshmėrish mėnyra mė e mirė, sė paku jo nė tė gjitha rastet.
Kjo ėshtė dhe arsyeja pse nė C# ekziston using(){}, qė imiton mėnyrėn se si administrohen resourcet nė C++ - RAII (Resource Acquisition Is Initialization).
Gjithashtu, ekzistojnė disa implementime tė GC pėr C++, dhe nuk ėshtė e vėshtirė ta implementosh vetė.
Nė ketė libėr shpjegohet njė variant i thjeshtė.
Dhe si pėr ēdo gjė tjetėr, pėrdorimi i GC nė C++ ėshtė njė opsion, por nuk ėshtė i detyruar.
Edhe njė herė mbi performancėn... (strumbullari i kėsaj teme)
C++ ofron tė njėjtėn performancė qė ofron C. Madje, nė disa raste ėshtė e vėshtirė qė me C tė arrish performancėn e C++, por pėr faktin e thjeshtė se C++ derivon prej C, performanca e C ėshtė automatikisht e trashėguar nė C++.
Edhe nė situatat qė kėrkojnė performancė tė lartė, programet nuk shkruhen nė asembler, me pėrjashtim tė rasteve kur dikush e shkruan nė asm thjesht dhe vetėm pėr tė demonstruar se mund ta shkruajė tė gjithin nė asm (ose kur programi ėshtė ekstremisht i vogėl, siē ėshtė p.sh. bootstrap).
Arsyeja ėshtė e thjeshtė: programet e shkruar nė C++ mund tė link-ohen me module tė shkruar nė C, fortran apo asembler.
Rritja e numrit tė procesorėve, bėrthamave (core) brenda njė procesori, rritja e sasisė sė memories (cache) dhe shpejtėsisė sė saj, kanė pėr tė dhėnė njėfarė kontributi nė rritjen e aftėsive procesuese, por pak a shumė kemi arritur nė limitet e kėsaj teknologjie.
Ēdo program ka pjesė qė mund tė ekzekutohen nė paralel, dhe pjesė qė duhet tė ekzekutohen nė seri.
Pjesėt qė mund tė ekzekutohen nė paralel mund tė ekzekutohen edhe nė seri, por pjesėt qė duhet tė ekzekutohen nė seri nuk mund tė ekzekutohen nė paralel.
Kėshtu qė paralelizmi nuk ka pėr tė na ēuar shumė larg.
Arsyeja pse gjithė energjitė janė fokusuar tek multicore/paralelizėm ėshtė se procesorėt kanė arritur pak a shumė limitin e shpejtėsisė.
Shpejtėsia e ka njė limit shpejtėsinė e dritės.
Numri i transistorėve mund tė vazhdojė tė dyfishohet ēdo 18 muaj edhe pėr ca kohė, por kjo nuk e rrit frekuencėn, dhe gjithė ēfarė mund tė merrej nga branch prediction, speculative execution apo pipelining pak a shumė ėshtė shfrytėzuar.
Shembulli i paralelizmit qė ke sjellė mė sipėr hot_prinz, demonstron tė kundėrtėn e asaj qė ke dashur tė thuash: procesori llogarit 4x me shume/shpejte.
Vetėm njėri nga procesorėt
ka bėrė punė.
Tre tė tjerėt kanė harxhuar korrent kot. Ekzistenca e tyre nuk bėri qė progresioni tė llogaritej mė shpejtė.
Dakord, progresioni u llogarit 4 herė, po kujt i hyn nė punė kjo?
Nėse dikujt i duhen 4 kopje tė rezultateve, fare mirė mund tė kopjojė rezultatet qė llogariti procesori i parė.
----------------------------------------
Ky ishte mesazhi im i fundit nė kėtė forum.
Pėrpara nja dhjetė ditėsh, me urdhėr tė sali berishės u pushkatuan 3 qytetarė Shqiptarė, tė paarmatosur, pa precedentė penalė, pa gjyq, nė mes tė bulevardit
Dėshmorėt e Kombit, nė njė hapėsirė publike ku gjithkush ka tė drejtė tė rrijė.
Vrasėsve, saliu u dha njė rrogė shtesė dhe, ndonėse me ligj nuk u takon, imunitet ndaj hetimit.
Nėse i vret kėlyshin njė qėni apo maceje, mund tė angullijnė pėr disa orė, e nė ndonjė rast mund tė refuzojnė edhe ushqimin pėr njė, a mbase dy ditė. Por vetėm kaq. Janė kafshė dhe jetojnė vetėm nė tė tashmen. Sapo e tashmja bėhet e shkuar, asnjė gjurmė sngelet mė tek ta.
Por njė gjė tė tillė smund ta bėsh me njerėzit. Njerėzit nuk falin.
Njerėzit, dhe jo ata qė quhen njerėz thjesht dhe vetėm sepse qėndrojnė mbi dy kėmbė (e qė fare mirė mund tė quheshin pula).
Njerėzit jetojnė edhe nė tė shkuarėn, pėrmes kujtimeve, edhe nė tė ardhmen, pėrmes imagjinatės.
Dhe sa mė inteligjent tė jenė, aq mė thellė nė tė shkuarėn, dhe aq mė larg nė tė ardhmen shkon mendja e tyre.
Unė smund tė jem mė pjesė e kėtij forumi qė ose censurohet (siē ankohej dikush), ose nė pjesėn dėrrmuese popullohet nga llumi i shoqėrisė Shqiptare. Cilido rast qoftė.
Nė vijim kam pėr tė postuar nė ndonjė nga forumet e tjera Shqiptare, me kėtė emėr, e ndoshta mund tė blogoj edhe nė sitin tim.
Krijoni Kontakt