|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2010
Città: Regno Unito
Messaggi: 38
|
[C++ vs C#] Performance Analysis
Ciao,
il mio collega ha fatto una breve performance analysis C++ vs C# usando Visual Studio 2008 Professional. Abbiamo visualizzato l'output su console e lanciato l'applicazione in "Debug" mode (la Release ottimizza il "bytecode" e quindi le performance. Abbiamo implementato una complessa funzione matematica in entrambi i linguaggi e i risultati sono: - 1.1 secondo come tempo di risoluzione usando C++ - 1.9 usando C# Non posso "postare" il codice ma se qualcuno di voi avesse fatto simili analisi (specialmente con "pesanti" funzioni matematiche vi sarei grato se poteste contribuire.. vi ringrazio! |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Ciao! Utile sicuramente, ma perche non in release (l'avrei fatto in release proprio perche'il codice e'ottimizzato!!)? (by curioso..)
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2010
Città: Regno Unito
Messaggi: 38
|
...il motivo e' perche' la release mode non "supporta" la debug shell, solamente una questione di pigrizia e tempo per il momento.. comunque in giornata implementiamo una seconda versione in modo da poter testare in release.. ;-)
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Qui trovi un po' di comparazioni c++/c# su linux
http://shootout.alioth.debian.org/u3...harp&lang2=gpp C'è il codice sorgente, potete provare ad eseguire gli stessi programmi sulla vostra piattaforma e vedere.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Anche perché non credo che compilatore e JIT di Mono possano produrre risultati migliori di quelli di VS e .NET/MS.
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ma infondo che ne sappiamo? La storia recente ci insegna che certi compilatori sanno fare magie! Chi ha detto intel?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Quote:
Su Windows ci mette la metà del tempo. ![]() |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Diciamocelo: da un benchmark che si chiama fancul' non ci si poteva aspettare di meno!
![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi lanciare in release entrambi. Altrimenti ha poco senso fare il confronto. La differenza può essere anche abissale.
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Per la mia esperienza personale C++ in Debug ha prestazioni pessime, mentre C# ha prestazioni quasi equivalenti alla modalità release (test effettuati con VS2008 SP1). Quasi sempre il C++ in queste condizioni risulta più lento.
In modalità release l'unico caso di equivalenza delle prestazioni tra C# e C++ che ho riscontrato è nell'accesso a SqlServer (Orm C++ basato su ODBC vs ADO.NET). E si che ODBC dovrebbe essere una lumaca in confronto al TDS usato da .NET. In tutti gli altri casi stravince C++. In particolar modo per quanto riguarda l'occupazione di memoria. |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Quote:
L'eseguibile compilato in modalità debug ci sta ~40 secondi, quello compilato in modalità release ce ne sta ~15. Prestazioni "quasi" equivalenti. ![]() ![]() (non è proprio indicativo, ma dimostra che dipende molto dal programma) |
|
![]() |
![]() |
![]() |
#14 | |||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Per C/C++ i migliori sono quelli di Intel, come giustamente hai riportato. A seguire quelli di Microsoft, e poi GNU & compagnia. Quote:
![]() Quote:
![]() ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Se effettivamente poi il codice C# ottimizzato non e' molto piu' performante, direi che o il compilatore C# fa un cattivo lavoro, oppure le performance sono molto legate a librerie che usi.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#16 | ||
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]() Ad esempio l'applicazione su cui sto lavorando gira a 5 Hz in modalita' di debug, e a circa 2KHz con tutte le ottimizzazioni abilitate; la differenza e' troppa per poter essere utile (tanto che lavoriamo piu' con test e analisi dei log, ma questo e' un altro discorso).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#18 | |
Member
Iscritto dal: Mar 2010
Città: Regno Unito
Messaggi: 38
|
Quote:
C# runna 10 volte piu' lento di C++... |
|
![]() |
![]() |
![]() |
#19 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non conoscevo il thread (ebbene sì: non frequento quella sezione
![]() ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:19.