Newsgroup: it.comp.lang.c++
Titolo: quale compilatore [forse OT?]

ciao a tutti, ho un piccolo dilemma, ho realizzato per un amico un mini
gestionale scritto al 80% in c++ standard, per il resto usa wxwidgets e
sqllite, ora pensavo a quale sia il compilatore da utilizzare, mi spiego
meglio il sorgente compila perfettamente con il borland c++ free command
line tool, con il mingw e con vc++ 7.1 (quello rilasciato a gratis) ora le
uniche cose che ho visto io č che con il borland ottengo un eseguibile +
grande circa del 5-10%, ma compila in meno di un minuto, il mingw ci sta +
di due minuti ma una volta "strippato" l'eseguibile č decisamente +
piccolo, per quanto riguarda il visual c++ č la prima volta che lo usa ma
magari essendo prodotto dalla stessa ditta del sistema operativo č piů
otimizzato?
insomma + che altro era per sapere chi usa cosa e se possibile le
motivazioni, grazie a tutti
michelangelo

 wrote

Per un gestionale qualsiasi compilatore affidabile fa bene.
Un 5-10% in piu' per la dimensione dell'eseguibile e' irrilevante oggi
giorni, specialmente su file relativamente piccoli, come credo sia quello
del tuo gestionale. Lo stesso discorso vare per la velocita' del codice
prodotto, su di un gestionale non ti cambia nulla, specialmente visto che le
differenze sono di solito piuttosto piccole.
Detto questo, tra i tre compilatori che hai citato, il VC++ 7.1 e' a mio
avviso il migliore anche se non ho mai usato la versione gratuita, credo che
sia identica a quella professional (se non che e' solo da linea di comando).
Attento a come specifichi le ottimizzazioni da linea di comando... leggiti
il manuale!
Ripeto pero' che anche il Borland ed il mingw vanno piu' che bene. Riguardo
alla velocita' del codice prodotto, tra i tre e' a mio avviso il VC++ ma un
quarto compilatore, quello Intel, spesso produce codice piu' veloce del
VC++. Come gia' ho detto pero' usa il prodotto con cui ti trovi meglio, che
costi poco (o gratis) e del quale tu possieda un licenza regolare, velocita'
e dimensione di codice non sono un problema.
Tommy

 velocita'  e dimensione di codice non sono un problema.
mi spiego meglio...
la velocita' del codice C++ in un gestionale e' raramente il problema. Un
gestionale sfrutta un DBMS e quando il gestionale e' lento sono qui che si
trovano i problemi.
Affinche' un gestionale sia veloce e' opportuno aver progettato bene il DB,
in modo che le queries piu' comune siano molto veloci etc... Un corretto uso
in indici puo' velocizzare parecchio. Inoltre, spesso ci sono piu' modi per
scrivere la stessa query, alcuni lenti altri veloci. Altri problemi possono
essere, se il database risiede su di un altro PC, legati alla rete etc....
Se i risultati dal database arrivano in modo veloce, e' davvero difficile
scrivere codice C++ cosi' poco efficiente da rallentare il programma ;-)
Quindi un 2-3% di performance in piu', al livello di C++ soltanto, che
ottieni con un compilatore rispetto ad un altro, diventa spesso prossimo
allo 0% in pratica quando poi devi accedere e comunicare con il DBMS.
Ovviamente questo vale nella stra-grande maggioranza dei casi. Ci possono
essere casi in cui i dati ottenuti debbano essere elaborati in modo molto
complesso per qualche strano motivo ... e quindi....
Tommy

si infatti avevo fatto un ragionamento analogo, il fatto è che
praticamente non ho problemi di licenze in quanto non è cmq un prodotto
commerciale quello che ho realizzato inoltre sqlite è di pubblico
dominio, wxwidgets è lgpl e tutti i compilatori oggigiorno si trovano in
versioni gratuite (a riga di comando ma questo non è un problema, anzi),
ovviamente tranne quello intel che dai test che ho visto in giro supera di
gra lunga tutti gli altri in termini di performance, il gestionale
ovviamente non soffre di questi problemi, l'uso di sql (e cmq il fatto che
per il 90% del tempo starà fermo a mostrare la sua "bella" interfaccia)
rendono inutili ottimizzazioni estreme, volevo solo fare un discorso di
maggior respiro partendo da un esempio, le considerazioni che hai fatto
sono molto valide, e anche se propendi verso il vc++ io amo in particolar
modo il compilatore borland, il fatto è che tutti i colleghi/amici a cui
ho posto il problema hanno invece infamato questo compilatore dicendo che
ottimizza male il codice se si fa molto uso di programmazione ad oggetti.
Io lavoro presso una ditta piccola ma mi piaceva sapere in ambiente
lavorativo più serio che compilatore va per la maggiore.
grazie, ciao