Criação de Benchmarks para análise e evolução do compilador Honey Potion

Chrystian Martins Soares Costa

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