Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
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


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
Norme e IA migliorano la postura di sicu...
Robot aspirapolvere Narwal ai minimi sto...
Incentivi per l'acquisto di auto elettri...
Radeon, stuttering con il ray tracing ne...
Kena Mobile finalmente ci siamo: eSIM in...
100.000 GPU NVIDIA in Norvegia: OpenAI a...
2 GoPro a prezzo stracciato: c'è ...
Blocco porno UK: la verifica dell'et&agr...
The Twisted Tale of Amanda Knox: il prim...
Samsung rallenta: utili in caduta libera...
'Il realismo ha rovinato i videogiochi' ...
Crollano anche i TV QLED Hisense: c'&egr...
Photoshop 2025: le nuove funzioni AI che...
Qualcomm cresce, ma la CPU per datacente...
Gli iPhone in offerta oggi? C'è i...
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: 11:19.


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