Criação de Benchmarks para análise e evolução do compilador Honey Potion
Este trabalho investiga o comportamento do compilador Honey Potion, que traduz codigo Elixir de alto nıvel para compatıvel com eBPF visando aplicacoes de monitoramento de sistemas. Conduzimos um estudo baseado em quatro benchmarks de monitoramento (CPU, memoria, rede e disco), comparando tres cenarios: benchmark em C escrito manualmente, o bench mark equivalente escrito em Elixir e o codigo C gerado pelo compilador. Os resultados revelam um aumento expressivo no volume de codigo , em media, o C gerado é 8,93 vezes maior que o codigo Elixir e 4,45 vezes maior que implementacoes em C otimizadas, podendo alcancar um overhead de ate 20 vezes em funcionalidades basicas.
A analise estrutural mostra que o compilador insere aproximadamente 55 linhas de inicializacao por programa e expande sistematicamente construcoes de alto nıvel: operacoes aritmeticas resultam em 6–7 linhas de C, buscas em mapas atingem cerca de 10 linhas e condicionais tornam-se cadeias profundamente aninhadas. A adocao de um sistema generico de tipos impoe custos adicionais de memoria e processamento devido `a conversao frequente entre estruturas “Generic” e tipos primitivos.
Observamos ainda padroes recorrentes de duplicacao de codigo em benchmarks complexos, como NetworkMonitor e DiskMonitor, que apresentam contagens identicas de linhas apesar de pertencerem a domınios distintos, evidenciando limitacoes na especializacao do processo de transformacao.
Os achados caracterizam de forma sistematica os trade-offs entre expressividade da linguagem, produtividade de desenvolvimento e eficiencia de execucao em ambientes restritivos como o eBPF. Com base nisso, identificamos oportunidades concretas de otimizacao para o compilador, incluindo geracao de codigo especializada por tipo, reducao de variaveis temporarias e eliminacao de verificacoes redundantes de excecoes, capazes de reduzir significativamente o overhead sem comprometer seguranca e robustez.
2025/2 - POC2
Orientador: Fernando Magno Quintao Pereira
Palavras-chave: eBPF, Elixir, compiladores, monitoramento de sistemas, Honey Potion, overhead de código
Link para vídeo
PDF Disponível