Saltar al contenido

¿Por qué las funciones intrínsecas de Java todavía tienen código?

Posteriormente a investigar con expertos en este tema, programadores de deferentes ramas y profesores dimos con la respuesta al dilema y la dejamos plasmada en este post.

Según wiki, la definición de Intrinsic La función es la siguiente:

En la teoría del compilador, una función intrínseca es una función disponible para su uso en un lenguaje de programación dado cuya implementación es manejada especialmente por el compilador. Por lo general, sustituye una secuencia de instrucciones generadas automáticamente por la llamada de función original, similar a una función en línea. Sin embargo, a diferencia de una función en línea, el compilador tiene un conocimiento íntimo de la función intrínseca y, por lo tanto, puede integrarla mejor y optimizarla para la situación. Esto también se llama función incorporada en muchos idiomas.

Además, dice, importante y relevante para su pregunta:

Los compiladores que implementan funciones intrínsecas generalmente las habilitan solo cuando el usuario ha solicitado la optimización, de lo contrario, recurren a una implementación predeterminada proporcionada por el entorno de tiempo de ejecución del lenguaje.

Por lo tanto, significa que se usa una implementación predeterminada la mayor parte del tiempo hasta que no se solicita o no es posible la optimización (esto depende de en qué máquina/configuración se esté ejecutando JVM). JVM puede reemplazar todo Integer.bitCount() código a una instrucción de código de máquina optimizada.

Además, consulte esta discusión que explica muy bien el punto con un código de ejemplo.

Se proporciona una implementación predeterminada en caso de que no haya posibilidad de usar la versión intrínseca, es decir, ejecutarse en una plataforma para la que no se proporciona una versión intrínseca.

Te mostramos reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *