Probablemente deberíamos comparar manzanas con manzanas y naranjas con naranjas. JRE es un tiempo de ejecución, no un kit de desarrollo. Podemos comparar: tamaño de fuente del kit de desarrollo, el tamaño del kit de desarrollo compilado y el tamaño compilado del tiempo de ejecución mínimo.
El paquete de orígenes OpenJDK 7 es de 82 MB (download.java.net/openjdk/jdk7) frente a paquete de orígenes GHC 7, que es de 23 MB (haskell.org/ghc/download_ghc_7_0_1). GHC no es grande aquí. Tamaño de tiempo de ejecución: openjdk-6-jre-headless en Ubuntu tiene 77 MB sin comprimir frente a Haskell helloworld, estático enlazado con su tiempo de ejecución, que es < 1 MB. GHC no es grande aquí.
Dónde GHC es grande, es el tamaño del kit de desarrollo compilado:
GHC en sí toma 270 MB, y con todas las bibliotecas y los servicios públicos que se juntan se tarda más de 500 MB. Y sí, es mucho, incluso con bibliotecas base y una herramienta de compilación/administrador de dependencias. La plataforma de desarrollo Java es más pequeña.
GHC:
$ aptitude show ghc6 | grep Size
Uncompressed Size: 388M
contra withdependencies OpenJDK:
$ aptitude show openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless ant maven2 ivy | grep Size
Uncompressed Size: 34.9M
Uncompressed Size: 905k
Uncompressed Size: 77.3M
Uncompressed Size: 1,585k
Uncompressed Size: 3,736k
Uncompressed Size: 991k
Pero todavía es más de 100 MB, 26 MB, no a medida que escribe.
cosas peso pesado en ghc6 y ghc6-prof son:
$ dpkg -L ghc6 | grep '\.a$' | xargs ls -1ks | sort -k 1 -n -r | head -3
57048 /usr/lib/ghc-6.12.1/ghc-6.12.1/libHSghc-6.12.1.a
22668 /usr/lib/ghc-6.12.1/Cabal-1.8.0.2/libHSCabal-1.8.0.2.a
21468 /usr/lib/ghc-6.12.1/base-4.2.0.0/libHSbase-4.2.0.0.a
$ dpkg -L ghc6-prof | grep '\.a$' | xargs ls -1ks | sort -k 1 -n -r | head -3
112596 /usr/lib/ghc-6.12.1/ghc-6.12.1/libHSghc-6.12.1_p.a
33536 /usr/lib/ghc-6.12.1/Cabal-1.8.0.2/libHSCabal-1.8.0.2_p.a
31724 /usr/lib/ghc-6.12.1/base-4.2.0.0/libHSbase-4.2.0.0_p.a
Tenga en cuenta lo grande que es libHSghc-6.12.1_p.a
. Entonces, la respuesta parece ser la vinculación estática y las versiones de creación de perfiles para cada biblioteca.
¿De dónde sacas estos 500MB? Mi GHC no está ni cerca de tan grande. – Jacob
A menos que cuente todas las bibliotecas, supongo ... – Jacob
Disculpe, estaba saliendo de una descarga del administrador de paquetes que incluye algunos deps. Lo actualicé para reflejar el tamaño de descarga del sitio web. Agregué un resumen de edición pero no apareció aquí (¿todavía?). Creo que la pregunta sigue en pie. Es grande. –