|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#221 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#222 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6396
|
Quote:
Perdonami ma.... hai letto bene a cosa serve quella libreria? Venire a dire che MPi con l'elaborazione parallela non c'entra nulla, quando la stragrande maggioranza di applicazioni parallele la usa, mi pare che sia una grossissima fesseria |
|
|
|
|
|
|
#223 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Seconda cosa: il caso non e' proprio limite. E' solo l'inizio. Se ci metti altro codice dentro, java prendera' il volo rispetto a C++. Pensa, per esempio, all'architettura MVC: Java sara' nettamente piu' veloce. Analogamente, architetture basate su sistemi di notifica (i.e. i listener): java sara' ancora piu' veloce. E cosi' via. Purtroppo tirare in piedi un esempio di questo genere, richiede molto piu' tempo.... Beh, ti ringrazio ancora.
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#224 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
(molto esplicativi soprattutto i dettagli
__________________
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 |
|
|
|
|
|
|
#225 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Ma non ha neanche senso confrontare due programmi scritti allo stesso modo, perche linguaggi diversi hanno modi diversi di essere programmati "al meglio". Piuttosto meglio confrontare due programmi che producano lo stesso output.
__________________
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 |
|
|
|
|
|
#226 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sottovento: è molto probabile che il codice che hai postato con il compilatore JIT si risolva in un "non codice"...nel senso che dopo il primo run si accorga che non ci sono side effect e che il codice assembly nativo sia in effetti nullo
Non mi risulta che qualsiasi cosa tu ci metta dentro vada più veloce Java...ad esempio con una cosa stupida: Codice:
class MyTest {
ArrayList<Integer> v;
public MyTest() {
v = new ArrayList<Integer>();
for(int i = 100; i > 0; i--)
{
for(int k = 0; k < 5; k++)
{
v.add(k * i);
}
}
}
public void sort() {
for(int i = 0; i < v.size(); i++)
for(int j = 0; j < v.size(); j++)
{
if(v.get(i) > v.get(j))
{
Integer temp = v.get(i);
v.set(i, v.get(j));
v.set(j, temp);
}
}
}
};
static void allochiamo ()
{
System.out.println ("Allochiamo un po'...");
long start = Calendar.getInstance().getTimeInMillis ();
for (int i = 0; i < 10000; i++)
{
MyTest mytest = new MyTest();
mytest.sort();
}
long stop = Calendar.getInstance().getTimeInMillis ();
System.out.println ("Fine allocazione");
System.out.println ("Time: " + ((stop - start)));
}
Con Java 20 secondi...in C++ 5 secondi (con ottimizzazione O2) |
|
|
|
|
|
#227 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#228 | ||
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Con i benchmark si può dimostrare tutto ed il contrario di tutto: The Java Faster than C++ Original Benchmark The Java (not really) faster than C++ 'The Java Faster than C++' Benchmark Revisited Why Java is slow[*] Quote:
[*] The Benchmarks Perversely, the only area [* *] in which Java can be as fast as C++ is a typical benchmark. If you need to calculate Nth Fibonacci number or run Linpack, there is no reason why Java cannot be as fast as C++. As long as all the computation stays in one class and uses only primitive data types like int and double, the Java compiler is on equal footing with the C++ compiler. The Real World The moment you start using objects in your program, Java looses the potential for optimization. This section lists some of the reasons why. [* *] Se ci si riferisce alla serie di benchmark sintetizzati dal grafico neanche in questa area Java riesce ad eccellere. Ultima modifica di variabilepippo : 02-01-2008 alle 23:53. |
||
|
|
|
|
|
#229 | |||
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
E' da un po' di post che scrivo che e' per questo motivo che si puo' affermare che prima o poi le piattaforme managed saranno piu' performanti... C++ ed affini ti permettono una ottimizzazione LOCALE, i managed sembrano (parere personale) andare verso una ottimizzazione GLOBALE. Quote:
Nel caso non lo dimostrino, puoi sempre interpretare i risultati Ad ogni modo, mi faccio sempre un po' di test. Penso di essere uno pratico, quindi mi fido dei test MIEI, fatto per il problema che vado a risolvere. Quote:
Questo pero' non toglie che le cose si stanno muovendo: dal mio punto di vista e' evidente dove si sta andando, e perche'. Secondo me non e' solo un problema di sviluppo di software migliore ed in tempi piu' rapidi. Non si e' mai veramente risolto il problema delle prestazioni dei linguaggi ad oggetti, dove vengono creati tanti oggetti di pochi byte ciascuno, causando problemi di frammentazione... GC e' la naturale soluzione. Meglio deallocare in un botto, no? Le prestazioni ne guadagnano.
__________________
In God we trust; all others bring data |
|||
|
|
|
|
|
#230 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Anzi il C++ ha nella libreria standard diversa roba adatta per creare un garbage collector... Ultima modifica di cionci : 03-01-2008 alle 01:02. |
|
|
|
|
|
|
#231 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Ma tutto questo mi porta ad una domanda: non dormi mai?
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#232 |
|
Junior Member
Iscritto dal: Jan 2005
Messaggi: 18
|
E' curioso come tanti argomenti trattati a favore dell'uno o dell'altro linguaggio ancora non abbiano portato a conclusioni nette, probabilmente perche' non ce ne sono, allo stato attuale.
La mia esperienza lavorativa, ormai oltre 15 anni di programmazione, mi ha portato a questa conclusione: Java cerca di ovviare alle problematiche maturate con il C++, durante l'evoluzione dell'informatica e delle esigenze dei software in genere; in special modo nell'uso dei puntatori e dei riferimenti, nelle allocazioni e nelle deallocazioni, i principali problemi di sviluppo che prendevano poi molto tempo nel cercare soluzioni ai bug; con la diffusione di internet a livello mondiale, c'e' stata la maggiore necessita' di programmi orientati al paradigma client-server: java nasce proprio per questo, eliminare i problemi di sviluppo del c++ ed aggiungere funzionalita' per ambienti di rete. La velocita' di esecuzione iniziava a non essere la prima necessita' di sviluppo, perche' l'hardware cresceva a dismisura come potenza, e i programmi di conseguenza, senza particolari accorgimenti software. Questa prassi pero' di non ottimizzare il codice, o meglio, di non realizzare software a regola d'arte, ha portato a quello che alcuni hanno definito come 40% in meno di prestazioni di Microsoft Vista rispetto a XP, mantenendo lo stesso hardware, dato che Vista e' fortemente basato su .Net Framework, la Virtual Machine di Microsoft concorrenziale a quella di Sun. Quindi usare una macchina virtuale implica un degrado di prestazioni rispetto al non usarla, a parita' di hardware. Questo e' assodato da applicazioni "reali". Ma perche'? Semplicemente perche' ad oggi le macchine virtuali non implementano quello che molti paper che sono stati riferiti iniziano a definire come "necessita'" per la pluralita' dei sistemi hardware: l'astrazione dall'hardware. Ma e' proprio necessaria questa astrazione? Si se si considerano dal punto di vista della cache locale associata alla cpu (AMD, Intel, Transmeta etc tutti con cache e metodi di accesso differenti), che e' vitale per la velocita' di esecuzione dei software (Vista e' compatibile si con x86, ma sono tutti diversi tra di loro a livello di cache e non solo...). In secondo luogo perche' non hanno la possibilita' di accedere in modo semplice alle sempre maggiori necessita' di interfacciamento esterno (ognuno con implementazioni troppo proprietarie per la portabilita' nel reparto palm computing o mobile per esempio... altro che standard...) La direzione intrapresa e' di realizzare un compilatore in tempo reale (o ricompilatore dinamico) integrato nella VM e/o Sistema Operativo che ottimizza il codice, frammentandolo e riorganizzandolo, con tecniche di morphig etc., per l'architettura e la cache "rilevata" durante l'esecuzione. Chi riuscira' ad implementare questo prima degli altri e in modo semplice, l'avra' vinta (tra Sun e Microsoft intendo con le loro Virtual Machines). Per adesso i compilatori C/C++ realizzano questo staticamente perche' sono stati progettari per farlo Progetti che hanno applicato la ricompilazione dinamica hanno dimostrato che sono super efficienti, e la microsoft lo sa, non per altro ha tra i suoi sviluppatori alcuni guru "conosciuti" nell'ambiente dell'emulazione... No, io non lavoro per la Microsoft... beh ancora no e sinceramente non credo possa mai succedere... Tux Rulez !TTY |
|
|
|
|
|
#233 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
E' chiaro che poi, in base al linguaggio, posso utilizzare costrutti e librerie a disposizione. Ne parlo meglio qui: http://www.hwupgrade.it/forum/showpo...&postcount=152
__________________
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 |
|
|
|
|
|
|
#234 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
__________________
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 |
|
|
|
|
|
|
#235 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Se poi vuoi fare riferimento a ReadyDrive, ReadyBoost e compagnia...sono tutte tecnologie che avrebbero dovuto rendere il sistema più veloce |
|
|
|
|
|
|
#236 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#237 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Prova a rimettere la new di un array di 1024 char e poi ne riparliamo. |
|
|
|
|
|
|
#238 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
In C++ devi fare riferimento alle librerie specifiche ognuna con la propria interfaccia, i linguaggi managed ti forniscono una libreria con interfaccia uniforme e soprattutto già fatta. Pensa se effettivamente il C++ non sarebbe ben più produttivo se oltre alla libreria standard avesse anche una libreria estesa equivalente come funzionalità a quella di Java o del .NET. |
||
|
|
|
|
|
#239 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quella dell'interfaccia grafica "carina" è soltanto uno degli aspetti citati, e tra l'altro ampiamente sottovalutato vista la portata dei cambiamenti (ricordiamoci che Metro e SilverLight sono soltanto delle banali applicazioni del nuovo sottosistema grafico completamente strutturato). ReadyDrive e ReadyBoost, poi, funzionano benissimo e accelerano anche di molto il caricamento: basta provarle. Comunque l'elenco delle modifiche di Vista è impressionante e si tratta, oltre di una sostanziale riscrittura, di nuove funzionalità non presenti su XP.
__________________
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 |
|
|
|
|
|
|
#240 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Ecco perché ormai preferisco sviluppare quasi esclusivamente in Python.
__________________
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 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:25.













e sinceramente non credo possa mai succedere... Tux Rulez !








