Optimización de parámetros de la máquina virtual de Java con algoritmo genético
Professor Advisor
dc.contributor.advisor
Bergel, Alexandre Henri
Author
dc.contributor.author
Canales Carreño, Felipe Andrés
Associate professor
dc.contributor.other
Hecht, Geoffrey
Associate professor
dc.contributor.other
Piquer Gardner, José Miguel
Associate professor
dc.contributor.other
Olmedo Berón, Federico
Admission date
dc.date.accessioned
2021-12-24T14:35:05Z
Available date
dc.date.available
2021-12-24T14:35:05Z
Publication date
dc.date.issued
2021
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/183384
Abstract
dc.description.abstract
Optimizar las opciones de la Java Virtual Machine (JVM) o máquina virtual de Java para poder obtener el mejor desempeño posible de un programa para uso productivo es una tarea desafiante y que requiere una cantidad significativa de tiempo. HotSpot, la implementación de código abierto de la JVM realizada por Oracle, ofrece más de 500 opciones, que reciben el nombre de flags, para ajustar los aspectos de compiladores, recolectores de basura o garbage collectors (GC), tamaño del heap y mucho más. Además de su gran número, estos flags se encuentran a veces pobremente documentados y crean la necesidad de realizar pruebas para asegurar que sus valores asociados entreguen mejor rendimiento y estabilidad con un programa específico.
Se han propuesto métodos de ajustamiento automático (Auto-tuning en inglés) para reducir esta carga. No obstante, pese a la aparición de técnicas de búsqueda cada vez más sofisticadas que permiten optimizaciones más efectivas, estos métodos no toman en cuenta las complejidades subyacentes de las flags de la JVM. Esto se debe a que existen dependencias e incompatibilidades entre flags que no son fáciles de expresar, las cuales de no ser consideradas pueden conducir a configuraciones inválidas o absurdas que no deben ser entregadas por el optimizador.
Es por esto que se propone un novedoso modelamiento inspirado por el feature model usado en Software Product Line que permite reflejar la complejidad de las flags de la JVM. También se demuestra la utilidad de este modelo, usándolo como input de un algoritmo genético para optimizar las pruebas de rendimiento de DaCapo.
es_ES
Lenguage
dc.language.iso
es
es_ES
Publisher
dc.publisher
Universidad de Chile
es_ES
Type of license
dc.rights
Attribution-NonCommercial-NoDerivs 3.0 United States