|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#161 | |||
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4739
|
Quote:
Quote:
da una parte, esistono chip che eseguono nativamente bytecode Java (in cui quindi il BC java diventa parte dell' instruction set - ad esempio ARM con estensione Jazelle ) dall'altra, nei moderni processori, anche l' assembly della ISA pubblica è disaccoppiato dal set delle istruzioni effettivamente eseguite dalle unità interne della cpu, da un livello di traduzione - in questo senso l' instruction decoder agirebbe come virtual machine di basso livello... Quote:
se però si considera che dei runtime per managed code sono già entrati a livello kernel nei sistemi operativi attuali (come parti di infrastrutture tese a uniformare la driver base e facilitare lo sviluppo di nuovi driver) e che per l' aggiornamento del C++ in programma per il 2009, si prevede l' introduzione nello standard di una garbage collection, l' impressione è che il managed code sia quello che vuole il mercato...
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
|
|||
|
|
|
|
|
#162 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Non volevo ricopiare tutto il tuo post, per cui lo quoto tutto cosi'
__________________
In God we trust; all others bring data |
|
|
|
|
|
#163 | ||
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4739
|
Quote:
provalo, secondo me non ti deluderà Quote:
), uso Eclipse su un p4 con 512 MB di ram - oggettivamente è pesante, più pesante di , per dire, Code:Blocksma rispetto a quest' ultimo ha un' architettura diversa (è strutturato in una moltitudine di plugin che vengono caricati all' avvio dell' sdk) e a runtime sembra fare molte più operazioni "dietro le quinte": l' input dell' utente sembra essere monitorato costantemente da un thread in background per tenere aggiornato il database degli import, gli Outlines e per la creazione delle liste contestuali, di hints mirati alla correzione degli errori sintattici in sospeso, di refactoring possibili sul metodo selezionato in un dato momento, e dei membri di classe accessibili con l' operatore di scopes... credo che ciò contribuisca al suo essere memory e cpu - intensive...
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 01-01-2008 alle 23:28. |
||
|
|
|
|
|
#164 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Con un milione di cicli il tempo di esecuzione è di 0.37 secondi. Tra l'altro vedo che in release con l'opzione O2 non cambia praticamente niente. Non escludo pesanti ottimizzazioni del loop unrolling del gcc. Ho provato anche ad usare un pò di C++ invece del C, usando una variabile string e assegnando la stringa vuota. Risultato 1,5 secondi per 10 milioni di cicli. Con Java 1.6.0.3 usando la classe String ottengo 1,8 secondi, mentre eseguendo la new di un array di char pari a 1024 il tempo di esecuzione è 143,797 secondi. Se le differenze sono pressochè nulle usando le rispettive classi String, con una sequenza enorme di allocazioni la differenza è parecchio marcata. Non vedo possibili ottimizzazioni della JVM messe in pratica. Domani riprovo con XP. Sarebbe interessante riportare i benchmark ottenuti con questo piccolo test. I test li ho eseguiti su un notebook Core 2 Duo T5300 1,7GHz, 2GB RAM, Fedora 8. nel mio caso stravince il c++. |
|
|
|
|
|
|
#165 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
Quote:
|
|
|
|
|
|
|
#166 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Eclipse lo puoi confrontare con Visual Studio, Code::Blocks no, sebbene sotto tanti aspetto CB funzioni molto meglio di VS per il C++. |
|
|
|
|
|
|
#167 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
Quote:
Code::Blocks di default ne ha qualcuno in piu, compreso wxsmith che è bello pesante come plugin, però come velocità non c'è proprio paragone comunque io sinceramente mi trovo molto meglio con CB che con eclipse cdt, difatti all'uni consigliano eclipse ed io me ne frego altamente ed utilizzo CB
|
|
|
|
|
|
|
#168 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Ho usato un notebook 1,7GHz, 1GB RAM Win XP SP2. Ho fatto 100 milioni di cicli, avendo tempi in proporzione piu' che doppi dei tuoi (per java, c++ e' molto piu' lento). Fra l'altro, usando Java 1.5 e Visual Studio .NET, che sembra essere uno dei migliori. Sulle stringhe hai ottenuto 1,5 contro 1,8... beh, devo dire che sono sorpreso in ogni caso dalla velocita', in entrambi i casi. Eppure hai un computer che non e' poi cosi' piu' performante del mio... A proposito, che tempi hai su 100 milioni di cicli? E, avendo tempo, su 1 miliardo? Le differenze dovrebbero accentuarsi, giusto? Oppure potrebbe succedere qualcos'altro, visto che la tua memoria e' doppia della mia
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#169 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Perchè a me per fare 10 milioni di cicli ci ha messo più di 147 secondi contro i 3.5 del C++. Non so se possa essere un problema della JVM Sun su linux. Per quanto riguarda il C++ non ho dubbi che il vantaggio sia il compilatore Quote:
|
||
|
|
|
|
|
#170 | ||
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Per 100 milioni di cicli, ci metto 52 secondi, mentre C++ (compilato in modalita' release) piu' del doppio. Quote:
In ogni caso, prendendo le prestazioni che hai segnalato prima sulle stringhe, (in cui Java e' piu' lento), risulta piu' lento di circa il 7%...
__________________
In God we trust; all others bring data |
||
|
|
|
|
|
#171 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#172 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Sicuramente.
__________________
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 |
|
|
|
|
|
#173 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
sottovento...posta il sorgente anche di Java, almeno evitiamo dubbi dovuti all'implementazione. L'avevi messo il distruttore con la delete[] nella versione C++, vero ?
Ultima modifica di cionci : 02-01-2008 alle 09:18. |
|
|
|
|
|
#174 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
O il mio compilatore è molto intelligente o la mia macchina è molto veloce
![]() Alloco un po'... Tempo di allocazione: 0 Versione C++ Edit: $ time ./MyTest Alloco un po'... Tempo di allocazione: 0 real 0m0.154s user 0m0.148s sys 0m0.000s |
|
|
|
|
|
#175 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
sottovento, mi sa che non hai scelto proprio l'esempio migliore
$ time java -classpath . mytest/Main Alloco un po'... Time: 63.06 real 1m3.177s user 1m2.908s sys 0m0.500s $ time ./MyTest Alloco un po'... Tempo di allocazione: 11 real 0m11.373s user 0m11.369s sys 0m0.000s |
|
|
|
|
|
#176 | ||
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Quote:
Inoltre già dalla version 5 di Java c'è tutto il package java.util.concurrent che semplifica notevolmente la gestione di applicaizioni parallele. Il supporto base al parallelismo invece credo ci sia fin da java 1.0
__________________
|
||
|
|
|
|
|
#177 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
A me sinceramente è capitato solo una volta e il problema si presentava solo in modalità concorrente per un bug del caiser che non riceveva mai tutti i messaggi di un'agente e quindi la coda dei messaggi cresceva indefinitamente. E sinceramente mi sfugge perchè in C++ il memory leak ti avrebbe preso solo 2 MB in +.. Io credo invece che in quella situazione il problema sarebbe stato se possibile ancora + grave.
__________________
|
|
|
|
|
|
|
#178 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
In quel modo l'applicazione non verrà rallentata in alcun modo dal garbage collector fino a che non sia effettivamente necessario.
__________________
|
|
|
|
|
|
|
#179 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6399
|
Quote:
|
|
|
|
|
|
|
#180 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6399
|
Quote:
In campi come la simulazione su supercomputers, dove la velocità è fondamentale, Java non è presente. Ma guarda un pò .. Ultima modifica di Unrue : 02-01-2008 alle 15:08. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:07.












), uso Eclipse su un p4 con 512 MB di ram - oggettivamente è pesante, più pesante di , per dire, Code:Blocks








