Articulo de referencia

Optimización adaptativa

La optimización adaptativa es una técnica informática que realiza la recompilación dinámica de partes de un programa en función del perfil de ejecución actual. Con una implement...

La optimización adaptativa es una técnica informática que realiza la recompilación dinámica de partes de un programa en función del perfil de ejecución actual. Con una implementación sencilla, un optimizador adaptativo puede simplemente encontrar un equilibrio entre la compilación justo a tiempo y la interpretación de instrucciones . En otro nivel, la optimización adaptativa puede aprovechar las condiciones de los datos locales para optimizar las bifurcaciones y utilizar la expansión en línea para reducir el coste de las llamadas a procedimientos.

Consideremos una aplicación bancaria hipotética que procesa transacciones de forma secuencial. Estas transacciones pueden ser cheques, depósitos y un gran número de operaciones menos comunes. Al ejecutarse el programa, los datos reales podrían consistir en la compensación de decenas de miles de cheques sin procesar un solo depósito ni un solo cheque con un número de cuenta fraudulento. Un optimizador adaptativo compilaría el código ensamblador para optimizar este caso común. Si el sistema comenzara a procesar decenas de miles de depósitos, el optimizador adaptativo recompilaría el código ensamblador para optimizar el nuevo caso común. Esta optimización podría incluir la inserción de código en línea.

Ejemplos de optimización adaptativa incluyen HotSpot y el sistema Dynamo de HP . [ 1 ]

En algunos sistemas, especialmente en la Máquina Virtual de Java , la ejecución de un conjunto de instrucciones de código de bytes puede revertirse de forma demostrable. Esto permite que un optimizador adaptativo haga suposiciones arriesgadas sobre el código. En el ejemplo anterior, el optimizador podría suponer que todas las transacciones son cheques y que todos los números de cuenta son válidos. Si estas suposiciones resultan incorrectas, el optimizador adaptativo puede "revertir" la ejecución a un estado válido e interpretar correctamente las instrucciones de código de bytes.

Véase también

Referencias

  1. El Dynamo de HP
  • CiteSeer para "Optimización adaptativa en la JVM Jalapeño (2000)" de Matthew Arnold, Stephen Fink, David Grove, Michael Hind y Peter F. Sweeney. Contiene enlaces al artículo completo en varios formatos.