Thursday, November 10, 2016

10 Cosas Que Debe Saber Sobre La Memoria De Archivos Asignados En Java

10 cosas que debe saber sobre la memoria de archivos asignados en Java La memoria asignada IO es una de las opciones IO más rápidas disponibles para el programa de Java. Si está escribiendo una aplicación sensible a la latencia, donde IO puede sesgar sus números, a continuación, utilizar MemoryMappedByteBuffer es una buena opción. Qué es Memory Mapped File y IO en Java Memoria de archivos mapeados son especiales, lo que permite que el programa de Java para acceder a los contenidos directamente de la memoria, esto se logra mediante la asignación de todo el archivo o porción de archivo en la memoria y el sistema operativo se ocupa de cargar la página solicitada y escribir en archivo mientras que la aplicación sólo se ocupa de la memoria que Resulta en operaciones IO muy rápidas. La memoria utilizada para cargar el archivo mapeado de memoria está fuera del espacio de montón de Java. El lenguaje de programación Java admite el archivo mapeado de memoria con el paquete java. nio y tiene MappedByteBuffer para leer y escribir desde la memoria. Ventaja y desventaja de la memoria asignada archivo Posiblemente la principal ventaja de la memoria asignada IO es el rendimiento que es importante para construir el sistema de comercio electrónico de alta frecuencia. Memory Mapped Los archivos son mucho más rápidos que el acceso a archivos estándar a través de E / S normales. Otra gran ventaja de la memoria asignada IO es que le permite cargar un archivo potencialmente más grande que no es de otro modo accesible. Los experimentos muestran que la memoria asignada IO funciona mejor con archivos grandes. Aunque tiene una desventaja en términos de aumento del número de fallos de página. Dado que el sistema operativo sólo carga una parte del archivo en la memoria si una página solicitada no está presente en la memoria, entonces resultaría en el error de página. También se puede utilizar para compartir datos entre dos procesos. Memoria asignada IO soporte en el sistema operativo La mayoría de los principales sistemas operativos como la plataforma Windows, UNIX, Solaris y otros sistemas operativos UNIX soportan la memoria asignada IO y con arquitectura de 64 bits puede mapear casi cualquier archivo en la memoria y acceder a él directamente usando el lenguaje de programación Java. Importantes puntos de memoria asignados a IO en Java Estos son algunos de los hechos importantes que debe saber sobre Memory Mapped File en Java: Java soporta memoria asignada IO con el paquete java. nio. Los archivos mapeados en memoria se usan en aplicaciones sensibles al rendimiento. p. ej. Plataformas de comercio electrónico de alta frecuencia. Mediante el uso de la memoria asignada IO, puede cargar la porción de archivos grandes en la memoria. El archivo mapeado en memoria puede resultar en un error de página si la página solicitada no está en la memoria. La capacidad de asignar una región del archivo en memoria depende del tamaño de memoria direccionable. En una máquina de 32 bits, no puede acceder más allá de 4GB o 2 ^ 32. La memoria asignada IO es mucho más rápida que la corriente IO en Java. Memoria utilizada para cargar El archivo está fuera del montón de Java y reside en la memoria compartida que permite que dos procesos diferentes accedan al archivo. La lectura y la escritura en el archivo mapeado de la memoria es hecha por el sistema operativo, así que incluso si su programa de Java se bloquea después de poner el contenido en la memoria, hará al archivo hasta que el OS esté muy bien. Prefieren el búfer de bytes directos sobre el búfer no directo para un rendimiento más rápido. Don39; t llamada MappedByteBuffer. force () método con demasiada frecuencia, este método está destinado a obligar al sistema operativo a escribir el contenido de la memoria en el disco, por lo que si llama al método force () cada vez que escribe en el archivo mapeado de memoria, no verá Verdadero beneficio de usar el búfer de bytes mapeados, en lugar de ello será similar a IO de disco. En caso de fallo de alimentación o de host, hay una pequeña posibilidad de que el contenido del archivo mapeado en memoria no esté escrito en el disco, lo que significa que podría perder datos críticos. Esa es toda la gente. Memoria mapeada IO es un concepto importante para desarrolladores Java avanzados, especialmente para escribir aplicaciones de alto rendimiento en Java. Si te gusta este consejo, entonces te gustaría visitar mi blog javarevisited. blogspot para más consejos.


No comments:

Post a Comment