|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#41 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
|
|
|
|
|
#42 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova MinGW32
|
|
|
|
|
|
#43 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
|
|
|
|
|
#44 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' un porting degli strumenti GNU per Windows (fra cui il compilatore gcc).
Fai l'installazione automatica (installa g++ e gcc) e poi metti il percorso dove stanno gli eseguibili nel path. http://www.mingw.org/ Per compilare: g++ -O3 source.cpp -o out.exe Oppure se vuoi puoi installare Code::Blocks che è già fornito con questo compilatore (ottimizza comunque, l'inlining con le STL fornisce un notevole boost). Ultima modifica di cionci : 16-09-2008 alle 14:34. |
|
|
|
|
|
#45 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Code::Blocks installato.
Prima di riuscire a compilare stavo impazzendo perchè avevo impostato male i percorsi degli eseguibili del compilatore GCC e mi dava, giustamente, il messaggio 'compilatore non valido'. Alla fine ce l'ho fatta e questi sono i risultati sulla mia macchina: Il mio codice: Il codice di Cionci: La mia macchina è questa: Codice:
AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ 2.50 GHz 896 MB di RAM |
|
|
|
|
|
#46 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Abilita le ottimizzazioni del codice e togli i simboli di debug:
Build -> Select target -> Release Project -> Build options -> seleziona Release -> Optimize for speed Puoi ricompila ed esegui. |
|
|
|
|
|
#47 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
|
|
|
|
|
#48 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
O2 toglilo
Comunque strana tutta questa differenza rispetto al mio. Windows lo posso solo virtualizzare come comparazione, ma intanto provo. |
|
|
|
|
|
#49 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Fatto. Ottengo un guadagno di un paio di secondi per entrambi i programmi.
|
|
|
|
|
|
#50 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Su Visual Studio hai applicato le ottimizzazioni ? |
|
|
|
|
|
|
#51 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Si. Ho provato sia con 'Maximize Speed /O2' che con 'Full Optimization /Ox' ma il risultato non cambia.
|
|
|
|
|
|
#52 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A questo punto boh...sarà merito di gcc 4, non credevo che fosse così potente nell'ottimizzazione del C++ anche rispetto a Visual Studio 2008.
|
|
|
|
|
|
#53 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
#!/bin/python
result = []
for line in file("prova.txt"):
result.append( [float(x) for x in line.split()] )
print "Ho letto",len(result),"linee"
Dovendo fare le cose in C++, andrei sul semplice, e userei quello che mette gia' a disposizione la libreria standard Codice:
void read_matrix( const string& filename, vector< vector<float> >& matrix )
{
string s;
ifstream input( filename.c_str() );
while ( getline( input, s ) )
{
matrix.push_back( vector<float>() );
istringstream is(s);
copy( istream_iterator<float>( is ),
istream_iterator<float>(),
back_inserter( matrix.back() ) );
}
}
E non si incavola se ci metto degli spazi extra a fine riga. Secondo me e' inutile andare a tirare fuori macchine a stati e compagnia, a meno che fare il parsing di testo sia lo scopo principale del programma, e in quel caso (presumento che il parsing sara' probabilmente piu' complicato) tanto vale farselo generare dal linguaggio (se e' in grado) oppure da un tool esterno.
__________________
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 |
|
|
|
|
|
|
#54 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
A proposito di ottimizzazione e GCC, vi posto questo interessante link, si tratta di Acovea, acronimo per (Analysis of Compiler Options via Evolutionary Algorithm). Ciao
__________________
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) |
|
|
|
|
|
|
#55 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 255
|
scusate ma cosa sono le ottimizzazioni del codice e o3,o2 ? mai sentito
e poi come fate a misurare il tempo ?
Ultima modifica di xciaoatuttix : 16-09-2008 alle 20:01. |
|
|
|
|
|
#56 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#57 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 255
|
|
|
|
|
|
|
#58 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#59 | |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
|
|
|
|
|
|
|
#60 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Chiaro, se tu dovessi controllare un centinaio di file diversi, ma se ne dovessi controllare uno da 1000 righe ?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:08.




















