2009-05-29 8 views
5

Eventuali duplicati:
Why does C++ compilation take so long?Quali caratteristiche di Java consentono di creare molto più velocemente di un programma C++ paragonabile?

sto lavorando con due diversi progetti di circa la stessa dimensione (LOC). Il processo di build Java che utilizza Ant viene misurato in minuti. L'elaborazione build C++ che utilizza gli strumenti CMAKE viene misurata in ore.

Quali caratteristiche di Java consentono di creare molto più rapidamente di un programma C++ paragonabile?

+0

C++ combina la potenza dell'assemblaggio con l'usabilità e la facilità d'uso dell'assemblaggio – Jherico

risposta

3

È possibile trovare utile this question. La risposta accettata non enfatizza un confronto con java, ma potresti essere in grado di dedurre un po 'di ciò che C++ sta facendo che impiega così tanto tempo.

+0

Il link punta a una risposta molto ben ponderata. Grazie! – Jon

4

Devo sospettare che l'assenza di kiloline di file di intestazione abbia molto a che fare con esso.

+1

e del preprocessore in generale. – luiscubal

+0

le intestazioni precompilate aiutano qui, giusto? – dfa

+0

@ dfa: Sì, mazzi. – chaos

4

diverse strategie di ottimizzazione

codice Java non è in genere ottimizzate per quanto C/codice C++ in fase di compilazione. Ciò significa che il codice byte Java è "meno ottimizzato" rispetto al codice nativo "simile" emesso dai compilatori C/C++. Il compilatore JIT (Just In Time) della JVM esegue ottimizzazioni in fase di runtime per aumentare le prestazioni del codice byte.

-2

Wow, c'è ottenuto essere qualcos'altro in corso in quel file CMAKE che non sta accadendo con il progetto java. I casi di test automatici vengono eseguiti? Non c'è nulla di fondamentale su Java che faccia compilare ordini di grandezza (o nessuno) più veloci del codice C++.

+0

Compilazione no, ma a volte è il collegamento che richiede ore. – mkb

+0

Lei, signore, si sbaglia. – Malfist

+0

Pwned! Mi serve per prendere un'ipotesi non istruita – AgileJon

2

Il solo fatto di avere lo stesso LOC non significa che lo stesso edificio richiederà lo stesso tempo. Ad esempio, se aggiungi file di intestazione grandi come windows.h in C++, dovrà costruire molto di più per questa riga.

4

I modelli sono particolarmente lenti da compilare.

Problemi correlati