Revista Informática

Configurar la máquina virtual de Java en R

Publicado el 26 septiembre 2018 por Daniel Rodríguez @analyticslane

Existen múltiples paquetes de R que utilizan la máquina virtual de Java para trabajar. Una mala configuración de esta puede provocar que no funcione bien. A continuación se explican en un par de trucos para configurar la máquina virtual de Java en R y poder evitar problemas.

Introducción

Java es uno de los lenguajes de propósito general más populares en la actualidad. Una de sus principales propiedades es la independiente de la plataforma sobre la que corren los programas. Esto se consigue porque estos corren en sobre una máquina virtual. El código escrito en sistema operativo puede correr sin cambios en todos aquellos para los que existe una máquina virtual. La portabilidad hace que se pueda utilizar desde R u otros lenguajes para realizar tareas específicas. Por ejemplo, hace poco se comentó cómo utilizar Java para acceder a las bases de datos.

Para utilizar el lenguaje Java directamente desde R se puede utilizar el paquete rJava. Su popularidad se puede apreciar en las decenas de paquetes del CRAN dependen de este. Lo que indica que la máquina virtual de Java se utiliza mucho desde R. Pudiendo ser utilizada en muchas ocasiones sin que el usuario se de cuenta de ello.

Una mala configuración de la máquina virtual de Java puede provocar que cuando sea necesario utilizar la misma no se obtengan los resultados. Por ejemplo, utilizar una versión incorrecta de la máquina virtual o cuando esta no tiene la memoria suficiente.

Obtención de la versión de la máquina virtual de Java en R

Utilizar una versión correcta de la máquina virtual es importante al emplear Java. Por ejemplo, para acceder a una base de datos se ha de importar un controlador JDBC que ha de ser compatible. Obtener la versión de Java desde R es relativamente fácil de hacer, simplemente se ha de instalar el paquete rJava y ejecutar el siguiente código:

require(rJava)
.jinit()
jObj = J('java.lang.System')
ver = jObj$getProperty('java.version')

Al ejecutar este código inicialmente se importa el paquete rJava y se utiliza la función .jinit() para inicializar la máquina virtual de Java. Posteriormente se guarda en la variable ver una cadena de texto con la versión de la máquina utilizado por R.

Configuración de la memoria de la máquina virtual de Java en R

La memoria es un recurso valioso que ha de ser gestionado inteligentemente. La memoria asignada por defecto a la máquina virtual de Java puede ser insuficiente para ciertas tareas. En caso de que esto suceda el código Java se parará generando una excepción. Para evitar esto se ha de asignar más memoria a la máquina virtual. En esta situación lo primero es consultar la memoria disponible mediante el comando:

options()$java.parameters

Obteniéndose generalmente una respuesta de la forma:

"-Xmx512m"

Lo que indica que la memoria máxima disponibles es de 512Mb. En caso de que se desee aumentar la memoria máxima hasta los 2Gb se puede utilizar el comando

options( java.parameters = "-Xmx4g" )

Además se pueden utilizar las siguientes opciones para configurar la memoria de la máquina virtual de Java:

  • -Xms3024m (memoria mínima)
  • -Xmx3024m (memoria máxima)
  • -XX:PermSize=2222m (mínimo heap)
  • -XX:MaxPermSize=2222m (máximo heap)
  • -XX:MaxNewSize=200m (memoria máxima para objeto)
  • -XX:NewSize=100m (memoria mínima para objeto)

Conclusiones

En esta entrada se ha visto dos trucos para configurar la máquina virtual de Java en R. No es necesario cambiar la configuración de esta, pero conocer cómo hacerlo puede evitar quebraderos de cabeza en muchas ocasiones.

Imágenes: Pixabay


Volver a la Portada de Logo Paperblog