Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-09-2008, 14:04   #41
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Prova con

#include <sstream>
C'è già:

Codice:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <ctime>

using namespace std;
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 14:06   #42
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
Prova MinGW32
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 14:09   #43
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Prova MinGW32
Cos'è? Un altro compilatore? Dove lo scarico?
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 14:18   #44
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 Vincenzo1968 Guarda i messaggi
Cos'è? Un altro compilatore? Dove lo scarico?
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.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 15:43   #45
Vincenzo1968
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
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 15:48   #46
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
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.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 15:52   #47
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
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.
Già fatto:
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 15:53   #48
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
O2 toglilo Lascia solo O3, in teoria non si potrebbero usare insieme.
Comunque strana tutta questa differenza rispetto al mio. Windows lo posso solo virtualizzare come comparazione, ma intanto provo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 16:07   #49
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
O2 toglilo Lascia solo O3, in teoria non si potrebbero usare insieme.
Comunque strana tutta questa differenza rispetto al mio. Windows lo posso solo virtualizzare come comparazione, ma intanto provo.
Fatto. Ottengo un guadagno di un paio di secondi per entrambi i programmi.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 16:23   #50
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 Vincenzo1968 Guarda i messaggi
Fatto. Ottengo un guadagno di un paio di secondi per entrambi i programmi.
Una possibile spiegazione è la versione diversa del compilatore: su Linux ho gcc 4.2.4, mentre quella di MinGW32 è la 3.4.2 (di diversi anni fa).

Su Visual Studio hai applicato le ottimizzazioni ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 16:31   #51
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da cionci Guarda i messaggi
Una possibile spiegazione è la versione diversa del compilatore: su Linux ho gcc 4.2.4, mentre quella di MinGW32 è la 3.4.2 (di diversi anni fa).

Su Visual Studio hai applicato le ottimizzazioni ?
Si. Ho provato sia con 'Maximize Speed /O2' che con 'Full Optimization /Ox' ma il risultato non cambia.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 16:35   #52
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
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.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 17:27   #53
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da xciaoatuttix Guarda i messaggi
complimenti vincenzo ottime prestazioni
penso che in un linguaggio come il c++ le prestazioni contano eccome altrimenti che senso ha usare il c++ per complicarsi la vita.
uso python e via
Scelta che non sarebbe affatto da scartare...
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"
Ci mette sulla mia macchina circa 34 secondi, contro circa i 28 secondi del codice di cionci e i circa 9 di quello di vincenzo.
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() ) );
    }
}
Anche in questo caso siamo circa sui 27-28 secondi sulla mia macchina.
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 18:04   #54
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cionci Guarda i messaggi
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.
[piccolo OT]
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 19:59   #55
xciaoatuttix
Member
 
L'Avatar di xciaoatuttix
 
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.
xciaoatuttix è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 20:01   #56
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 xciaoatuttix Guarda i messaggi
scusate l'ignoranza ma cosa sono le ottimizzazioni e o3,o2 ? mai sentito
e poi come fate a misurare il tempo ?
Il tempo lo misuri tramite codice, guarda il sorgente.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 20:19   #57
xciaoatuttix
Member
 
L'Avatar di xciaoatuttix
 
Iscritto dal: Jul 2008
Messaggi: 255
Quote:
Originariamente inviato da cionci Guarda i messaggi
Il tempo lo misuri tramite codice, guarda il sorgente.
è vero avevo guardato solo il primo codice.
e le ottimizzazioni (o3 o2 ) cosa sono? ci sono anche in g++ ?
xciaoatuttix è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 20:23   #58
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 xciaoatuttix Guarda i messaggi
e le ottimizzazioni (o3 o2 ) cosa sono? ci sono anche in g++ ?
Certo, SONO quelle di gcc e g++: g++ -O3 xyz.cpp -o xyz
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 20:24   #59
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da marco.r Guarda i messaggi
...
Ci mette sulla mia macchina circa 34 secondi, contro circa i 28 secondi del codice di cionci e i circa 9 di quello di vincenzo.
...
Il che vuol dire che, se devo processare un centinaio di file, il programma in Python impiega circa 56 minuti, quello di Cionci circa 45 e il mio 15. Giusto?
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 16-09-2008, 20:27   #60
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
Chiaro, se tu dovessi controllare un centinaio di file diversi, ma se ne dovessi controllare uno da 1000 righe ?
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ESA ha proposto un aumento del budget da...
Piratare Battlefield 6? Davvero una pess...
Arriva Veeam Data Platform v13. Pi&ugrav...
Framework interrompe la vendita di RAM: ...
Tachyum inventa le memorie TDIMM: una nu...
Roborock Q7 TF+, il robot economico cost...
Osca rinasce: le auto dei fratelli Maser...
Hlpy, la tecnologia al servizio dell’ass...
Ericsson rilancia sul 5G Standalone: l’I...
Black Friday Amazon: arrivano i super-sc...
Seagate raggiunge 6,9 TB per piatto con ...
Samsung lancia la One Shot Challenge: co...
Dell: il passaggio da Windows 10 a Windo...
Black Friday Speaker: JBL, Bose, Sony, M...
Hai un router ASUS? La nuova falla in Ai...
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: 22:08.


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