2012-01-16 31 views
7

Estoy creando una aplicación bastante simple que lee y muestra archivos de texto y busca a través de ellos.Java JDK 32 bits frente a 64 bits

Me pregunto si hay algún interés para mí para proponer la versión de 32 y 64 bits para el usuario.

¿La única diferencia es tener acceso a más tamaño de almacenamiento dinámico con la versión de 64 bits o hay algún otro interés?

¿Un 32 bits compilado programa de trabajo en un 64 bits JVM (supongo que sí)

+4

Siempre que su aplicación sea Java 100% pura, no hay mucha diferencia, excepto por el posible tamaño de almacenamiento dinámico. – Thomas

+0

Solo recuerde que los JRE de 32 y 64 bits son instalaciones separadas, y la mayoría de la gente solo tiene uno de 32 bits instalado por defecto (incluso en máquinas de 64 bits). – Viruzzo

+0

Gracias por sus respuestas. Como esperaba, para Java puro esto no cambia nada (a excepción del tamaño del montón). – HpTerm

Respuesta

12

Las únicas diferencias entre los de 32 bits y de 64 bits construye de cualquier programa son los tamaños de las palabras de la máquina, la cantidad de memoria direccionable y el sistema operativo ABI en uso. Con Java, la especificación del lenguaje significa que las diferencias en el tamaño de la palabra de la máquina y OS ABI no deberían importar en absoluto a menos que también esté usando código nativo. (Código nativo debe debe ser el mismo que el tamaño de palabra de la JVM que lo cargará; no puede mezclar las compilaciones de 32 y 64 bits en el mismo proceso sin una codificación muy exótica, y no debería estar haciendo eso con Java sobre.)

+0

El tamaño de la palabra nativa puede marcar una diferencia fundamental en el código C o C++, especialmente si está escrito mal o hackfully, pero el código Java no verá la diferencia en absoluto. –

+0

Gracias por la respuesta. Tengo claro que en Java puro esto no cambiará nada. – HpTerm

+1

@HpTerm: en Java puro, todo lo que cambia es la cantidad de memoria direccionable (buena) y la cantidad de memoria por objeto (no tan buena). Tampoco es un cambio que genere problemas que pueda ver a menos que esté corriendo cerca de los límites de VM. –

2

Las únicas veces que lo han movido para mí es cuando ha habido bibliotecas nativas involucradas que lo han empujado de una manera u otra. Si solo está en Java land, entonces, de forma realista, a menos que necesite> 4 GB de tamaño de almacenamiento dinámico, hay muy poca diferencia.

EDITAR: Las diferencias incluyen cosas como que utiliza un poco más de memoria que 32 bits, mucho más si está utilizando una versión anterior a 6u23 y no está usando -XX:+UseCompressedOops. También puede haber una ligera diferencia de rendimiento entre los dos, pero de nuevo nada enorme.

+0

No dijo "no hay diferencia", pero dijo "muy poca diferencia. Solo por mi conocimiento asumiendo Java puro, fue esta pequeña diferencia. – HpTerm

+0

@HpTerm Ver respuesta actualizada – berry120

+1

Gracias por su respuesta – HpTerm

Cuestiones relacionadas