Heurísticas de dimensionamento de heap do GC Guile: Uma história de travamento ao vivo

2025-05-26

O projeto Guile está integrando um coletor de lixo de varredura conservadora baseado em Nofl. Atualmente usando uma política de heap expansível, o tamanho do heap é ajustado por um multiplicador para levar em conta a fragmentação. No entanto, a fragmentação severa pode levar a falhas de alocação e deadlocks, mesmo quando o heap tem o dobro do tamanho esperado. A postagem explora soluções: aumentar o multiplicador, mudar a organização do heap e reservar blocos vazios para o coletor Nofl. O objetivo é o tratamento eficiente da fragmentação e a prevenção de deadlocks.

Leia mais
Desenvolvimento

Construindo um Coletor de Lixo do Zero: Uma Jornada de 20 Anos

2025-05-12

Um programador com 20 anos de experiência, após estudar o algoritmo de coleta de lixo Immix, decidiu implementar um novo coletor de lixo para o Guile Scheme. Seu objetivo inicial era criar uma interface de gerenciamento de memória genérica, mas acabou desenvolvendo um novo coletor de lixo chamado Nofl, que usa uma tabela auxiliar de um coletor mark-sweep para alocação de ponteiro bump. O autor também compartilha sua experiência de submeter sua pesquisa a uma conferência acadêmica e suas reflexões sobre pesquisa acadêmica e indústria.

Leia mais
Desenvolvimento

O Desempenho Confuso da Coleta de Lixo Geracional

2025-02-09

O autor realizou experimentos para verificar os benefícios de desempenho da coleta de lixo geracional. Surpreendentemente, os resultados mostraram que a coleta de lixo geracional levou mais tempo do que a coleta de lixo de heap inteiro em vários benchmarks. O artigo explora várias causas potenciais, incluindo a sobrecarga da barreira de gravação, a seleção do tamanho da creche, a representatividade do benchmark e a frequência de coleta. O autor conclui que são necessárias investigações adicionais para determinar a causa raiz.

Leia mais
Desenvolvimento