Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-03-2010, 11:13   #1
peng
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!
peng è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 11:33   #2
zakmckraken
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..)
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 11:47   #3
peng
Member
 
Iscritto dal: Mar 2010
Città: Regno Unito
Messaggi: 38
Quote:
Originariamente inviato da zakmckraken Guarda i messaggi
Ciao! Utile sicuramente, ma perche non in release (l'avrei fatto in release proprio perche'il codice e'ottimizzato!!)? (by curioso..)
...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.. ;-)
peng è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 13:29   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
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!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:54   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:58   #6
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
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!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 16:18   #7
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Anche perché non credo che compilatore e JIT di Mono possano produrre risultati migliori di quelli di VS e .NET/MS.
Ho provato uno di quei benchmark (fannkuch) sulla mia macchina dual boot.
Su Windows ci mette la metà del tempo.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 16:42   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
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!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 16:51   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da peng Guarda i messaggi
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.
Devi lanciare in release entrambi. Altrimenti ha poco senso fare il confronto. La differenza può essere anche abissale.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 16:53   #10
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da peng Guarda i messaggi
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!
In particolar modo quando si usa tanta matematica, ci puo' essere una differenza abissale tra le performace in modalita' di Debug e quella Release; in particolare a seconda delle librerie usate possono venire eliminati un sacco di controlli in loop stretti che cambiano radicalmente le carte in tavola. Sarebbe il caso di riprovare in modalita' Release.
__________________
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 16:55   #11
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da cionci Guarda i messaggi
Devi lanciare in release entrambi. Altrimenti ha poco senso fare il confronto. La differenza può essere anche abissale.
Appunto, evidentemente abbiamo postato io in modalita' Debug e tu in Release .
__________________
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 18:40   #12
tomminno
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.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 19:33   #13
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da tomminno Guarda i messaggi
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).
Ho provato col benchmark di cui parlavo prima.
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)
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 07:30   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Ma infondo che ne sappiamo? La storia recente ci insegna che certi compilatori sanno fare magie! Chi ha detto intel?
Sì, ma dipende da chi li fa i compilatori, appunto.

Per C/C++ i migliori sono quelli di Intel, come giustamente hai riportato. A seguire quelli di Microsoft, e poi GNU & compagnia.
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
Ho provato uno di quei benchmark (fannkuch) sulla mia macchina dual boot.
Su Windows ci mette la metà del tempo.
Ecco, appunto.
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Diciamocelo: da un benchmark che si chiama fancul' non ci si poteva aspettare di meno!
E da te una battuta del genere.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 08:12   #15
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tomminno Guarda i messaggi
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.
Immagino che la vm del .net effettui comunque un certo numero di ottimizzazioni anche sul bytecode di debug, mentre il compilatore c++ del visual studio non ne faccia alcuna (alcuni compilatori permettono invece di farlo), questo spiegherebbe la differenza di performance in fase di debug.
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 09:30   #16
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Immagino che la vm del .net effettui comunque un certo numero di ottimizzazioni anche sul bytecode di debug, mentre il compilatore c++ del visual studio non ne faccia alcuna (alcuni compilatori permettono invece di farlo), questo spiegherebbe la differenza di performance in fase di debug.
Anche con Visual Studio in C++ si possono abilitare le ottimizzazioni in Debug ma non è che abbia molto senso, esiste la versione Release apposta.

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.
Ad esempio se la console fa un output molto intenso in C# il tempo per stampare a video il testo non cambia tra debug e release, in C++ invece mi risulta un aumento di prestazioni ragguardevole. Idem per la scrittura su file.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 13:29   #17
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Anche con Visual Studio in C++ si possono abilitare le ottimizzazioni in Debug ma non è che abbia molto senso, esiste la versione Release apposta.
Ma nella versione release non puoi fare debug . A volte e' necessario una versione del programma su cui poter fare debug ad una velocita' decorosa, pure al costo di perdere per strada qualche funzione che e' stata resa inline, o avere i riferimenti di linea non precisi.
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 14:01   #18
peng
Member
 
Iscritto dal: Mar 2010
Città: Regno Unito
Messaggi: 38
Quote:
Originariamente inviato da marco.r Guarda i messaggi
In particolar modo quando si usa tanta matematica, ci puo' essere una differenza abissale tra le performace in modalita' di Debug e quella Release; in particolare a seconda delle librerie usate possono venire eliminati un sacco di controlli in loop stretti che cambiano radicalmente le carte in tavola. Sarebbe il caso di riprovare in modalita' Release.
Abbiamo provato in modalita' release e la differenza e' ancora abissale..
C# runna 10 volte piu' lento di C++...
peng è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 14:16   #19
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Quote:
Originariamente inviato da PGI-Bis
Ma infondo che ne sappiamo? La storia recente ci insegna che certi compilatori sanno fare magie! Chi ha detto intel?
Sì, ma dipende da chi li fa i compilatori, appunto.

Per C/C++ i migliori sono quelli di Intel, come giustamente hai riportato. A seguire quelli di Microsoft, e poi GNU & compagnia.
Sospetto fortemente che, con il termine "magie", PGI stesse facendo dell'ironia, riferendosi indirettamente a questa chicca, più che all'effettiva efficienza dei compilatori Intel
__________________

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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2010, 15:16   #20
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Non conoscevo il thread (ebbene sì: non frequento quella sezione ), ma il comportamento di Intel coi suoi compilatori sì.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Palo Alto Networks presenta novità...
Surya, il modello di IA di IBM e NASA ch...
I browser Arc e Dia diventano parte dell...
Duster e Bigster, tutto quello che manca...
Superman: Man of Tomorrow, confermato da...
SK Hynix, accordo storico: 10% degli uti...
Arriva Veeam Software Appliance: protezi...
MSI PRO MP252: un ottimo monitor 24,5'' ...
Blackwell B30A: la GPU che la Cina vuole...
Il trifoldable di Samsung potrebbe non e...
Il gioco più venduto su Xbox &egr...
Rubati i filmati di oltre 2.000 videocam...
Battlefield 6 sarà molto violento...
Fastweb + Vodafone: arriva la prima offe...
Netflix lancia la possibilità di ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v