Tabla de contenidos
GraalVM es una alternativa a la JVM desarrollada por Oracle, es decir, Java Virtual Machine. GraalVM debería contribuir con su funcionalidad a la compilación más potente de aplicaciones Java. Como VM políglota, GraalVM también puede integrar bibliotecas externas.
La designación GraalVM es una abreviatura de “Máquina virtual de lenguaje algorítmico y aplicativo recursivo general”. El proyecto GraalVM proviene de Oracle. GraalVM está destinado a brindar a los desarrolladores una forma de compilar aplicaciones Java de manera más eficiente. GraalVM combina todas las funciones de GraalVM. El desarrollo de GraalVM comenzó en 2013.
En ese momento, Oracle Labs estaba investigando una máquina virtual para Java, que a su vez estaba escrita en Java. La propia máquina virtual Java , por otro lado, está escrita principalmente en los lenguajes de programación C o C ++. El objetivo del proyecto GraalVM es reemplazar los componentes C y C ++ en las plataformas JVM actuales. Esto debería permitir utilizar las ventajas de la máquina virtual Java en otros lenguajes.
GraalVM ejecuta programas basados en Java de forma más rápida y eficiente de lo que sería posible con la JVM clásica. El código puede interpretarse directamente o traducirse en un compilador. Esto se puede hacer de diferentes maneras. Gracias a la orientación políglota de GraalVM, también se pueden integrar otros programas.
Dado que la máquina virtual no solo puede manejar código Java, Oracle Labs eligió el nombre GraalVM y no GraalJVM. Los programas escritos en otros lenguajes de programación como Scala o C se benefician de esto en particular.
Conceptos básicos y funcionalidad de GraalVM
El compilador juega un papel importante en la funcionalidad de GraalVM. Esto se basa en la interfaz del compilador JVM (JVMCI). Es capaz de proporcionar a las aplicaciones Java un código de máquina eficiente y así acelerarlas. El compilador en sí está escrito en Java para que los desarrolladores puedan concentrarse completamente en este lenguaje de programación y no tengan que lidiar con C ++.
El compilador GraalVM todavía tiene rutinas de optimización internas. Estos permiten al compilador mejorar continuamente su propio trabajo. El uso del compilador requiere la descarga de GraalVM. El enfoque de este compilador está en el rendimiento. Las aplicaciones o aplicaciones deben proporcionarse de la manera más poderosa posible.
Esto puede hacer que el proceso de compilación lleve más tiempo y que la aplicación consuma más recursos. Esto incluye particularmente más memoria. La imagen nativa de GraalVM también proporciona un archivo ejecutable a través del compilador. Las aplicaciones también se pueden implementar con GraalVM de tal manera que se puedan convertir de código a programa en ejecución en el menor tiempo posible.
El GraalVM y sus versiones
Con respecto a GraalVM, se debe hacer una distinción básica entre la Community Edition gratuita y la Enterprise Edition comercial. El código fuente de Graal está disponible en GitHub. Los archivos binarios de Graals están disponibles para Linux / X86, Linux / ARM, Windows y macOS. El GraalVM todavía contiene numerosas tecnologías que se han adoptado de otros proyectos. Estos incluyen OpenJDK y Node.js.
Dado que la comunidad GraalVM no mantiene ni actualiza estas tecnologías, la responsabilidad de estas tecnologías recae en sus respectivos desarrolladores. Según sus desarrolladores, la edición empresarial comercial Graals ofrece un mejor rendimiento y escalabilidad, así como una mayor seguridad. Además, Oracle ofrece soporte las 24 horas del día para Enterprise Edition. La Enterprise Edition se puede probar de forma gratuita durante un tiempo limitado.
Los desarrolladores recomiendan la Enterprise Edition en lugar de la versión comunitaria gratuita debido al compilador más sólido y la mayor seguridad para uso operativo y profesional. Sin embargo, en principio, Community Edition también se puede utilizar en aplicaciones profesionales. Cabe señalar que la versión comunitaria no ofrece soporte completo de Oracle.
Substrate VM como parte del proyecto GraalVM
Una parte importante del proyecto Graal es SubstrateVM, que se utiliza para proporcionar a los usuarios una herramienta de línea de comandos. La máquina virtual ajustada, escrita en Java, asume las tareas de la JVM en binario final. Estos incluyen la gestión de subprocesos y la recolección de basura.
Se utiliza el sustrato VM en lugar de la JVM. No ofrece el máximo rendimiento posible de una aplicación, pero garantiza que la aplicación se inicie rápidamente. Esto es particularmente interesante para aplicaciones sin servidor. También se benefician los programas de menor duración. Gracias a Substrate VM, los programas requieren menos recursos y pueden iniciarse más rápido.
Otras opciones y posibilidades del GraalVM
Además de las aplicaciones Java y su compilación de rendimiento optimizado, GraalVM tiene otras propiedades y opciones. Actualmente, Node.js, Ruby, R y Python también se pueden ejecutar a través de GraalVM. Esto significa que los programas escritos en estos lenguajes también se benefician de las mismas opciones en la compilación de GraalVM que las aplicaciones Java.
Debido a este soporte general, también se pueden operar aplicaciones que tienen acceso desde Java a módulos que han sido diseñados en otros lenguajes. La integración de bibliotecas de otros lenguajes en las aplicaciones Java es fácilmente posible debido al carácter políglota de GraalVM.