View Full Version : [C] Migliore Compliatore C
Ciao Ragazzi,
Sapete qual'è il miglior compilatore C che generi il codice più veloce possibile? Tenete conto che io ho una macchina Intel core 2.
Fin'ora ho fatto le prove con due compilatori e questi sono i risultati sul mio codice:
Lcc => 1410 ms
VC++ => 720 ms
Graize,
Marco.
reptile9985
15-11-2007, 15:54
imho il miglior compilatore non si giudica dalla quantità di tempo che impiega a compilare ma dalle feature che supporta del linguaggio e dall'ottimizzazione del codice macchina.
comunque prova gcc
variabilepippo
15-11-2007, 16:56
compilatore C che generi il codice più veloce possibile?
Cerchi quello che generi il codice più veloce o quello che generi più velocemente il codice? :rolleyes:
tomminno
15-11-2007, 17:59
La domanda è senza senso, in quanto bisogna specificare l'architettura e il sistema operativo.
Quanto ad ottimizzazione del codice l'Intel compiler per le architetture Intel è il migliore, ma non è gratuito e la domanda non fa presupporre una competenza e una necessità tale da giustificare l'esborso.
Per il supporto al C99, visto che chiedi di C, i compilatori M$ sono da evitare perchè appunto non offrono il supporto all'ultima versione di tale linguaggio che risale ormai a 8 anni fa.
Mentre il gcc offre il supporto al C99 oltre ad essere free.
Esistono altri compilatori magari specifici per altre architetture, ma non sono free.
variabilepippo
15-11-2007, 19:12
Per il supporto al C99, visto che chiedi di C, i compilatori M$ sono da evitare perchè appunto non offrono il supporto all'ultima versione di tale linguaggio che risale ormai a 8 anni fa.
Ma l'utente non ha chiesto un compilatore aderente agli standard, ne vuole uno "veloce"... E dopo l'Intel quello di Microsoft è tra i più ottimizzanti. ;)
Ma perchè ogni volta che uno fa una semplice domanda deve essere sempre criticato "domanda senza senso" e "la domanda non fa presupporre una competenza"? Mah!!!
Torniamo a noi... A me interessa il compilatore che sulla mia macchina (Intel Core 2 Duo T5600) faccia girare il mio codice il più velocemente possibile. :)
Variabilepippo visto che dici che il più "forte" è quello Intel seguito da quelli MS, sai mica se tra quelli MS ci sono delle differenze? Io nella prova che citavo ho usato VC++ 6. Pensi che usando VC++ 2005 possa migliorare specialmente usando i due core?
Grazie mille,
Marco. :)
anche il compilatore Intel è un "compilatore Microsoft"; per compilatori Microsoft si intende quelli compatibili con IL compilatore Microsoft (che è uno solo) dal punto di vista del linguaggio e delle opzioni della linea di comando; infatti il compilatore Intel (come anche qualunque altro compilatore Microsoft) può essere configurato direttamente in Visual C++.
variabilepippo
15-11-2007, 20:45
Pensi che usando VC++ 2005 possa migliorare specialmente usando i due core?
VC++ 6 è un compilatore che risale al '98 se non vado errato, ci sono diverse patch e vari service pack ma non è confrontabile con VC++ 2005.
Se vuoi sfruttare al meglio il dual core devi scrivere codice dedicato e non affidarti esclusivamente alle ottimizzazioni del compilatore. Ci sono varie librerie utilizzabili: Threading Building Blocks (http://threadingbuildingblocks.org/), OpenMP (http://www.openmp.org/), MPI (http://www.open-mpi.org/), ...
infatti il compilatore Intel (come anche qualunque altro compilatore Microsoft) può essere configurato direttamente in Visual C++.
Esatto, il compilatore Intel è davvero molto simile a quello Microsoft se si prendono in considerazione le opzioni ed i relativi comportamenti (tra l'altro gli headers usati sono quelli di Microsoft). Ovviamente Intel C++ offre diverse ottimizzazioni non disponibili in Visual C++.
tomminno
15-11-2007, 20:54
anche il compilatore Intel è un "compilatore Microsoft"; per compilatori Microsoft si intende quelli compatibili con IL compilatore Microsoft (che è uno solo) dal punto di vista del linguaggio e delle opzioni della linea di comando; infatti il compilatore Intel (come anche qualunque altro compilatore Microsoft) può essere configurato direttamente in Visual C++.
Per compilatore Microsoft io intendo quello Dinkumware incluso in VisualStudio.
tomminno
15-11-2007, 20:58
Ma perchè ogni volta che uno fa una semplice domanda deve essere sempre criticato "domanda senza senso" e "la domanda non fa presupporre una competenza"? Mah!!!
Senza senso perchè se vuoi compilare su Linux di Visual Studio non te ne fai niente, indipendentemente dalla sua velocità.
Per rispondere alla tua domanda bisognerebbe prendere in considerazione tutti i compilatori per X86, visto che hai citato solo il processore.
Torniamo a noi... A me interessa il compilatore che sulla mia macchina (Intel Core 2 Duo T5600) faccia girare il mio codice il più velocemente possibile. :)
Variabilepippo visto che dici che il più "forte" è quello Intel seguito da quelli MS, sai mica se tra quelli MS ci sono delle differenze? Io nella prova che citavo ho usato VC++ 6. Pensi che usando VC++ 2005 possa migliorare specialmente usando i due core?
Grazie mille,
Marco. :)
Quanto a codice generato è indubbio che il 2005 sia un enorme passo avanti rispetto al vetusto VC6 (uscito prima ancora della ratifica dello standard C++)
variabilepippo
15-11-2007, 21:08
Per compilatore Microsoft io intendo quello Dinkumware incluso in VisualStudio.
Alla Dinkumware non sviluppano compilatori ma librerie... :rolleyes:
tomminno
16-11-2007, 08:55
Alla Dinkumware non sviluppano compilatori ma librerie... :rolleyes:
Hai ragione Sorry. :doh:
Trovandomi sempre il copyright Dinkumware dento gli eseguibili mi ero fatto l'idea che fosse loro il compilatore.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.