When implementing malloc(), it is important to consider the size of the allocated blocks. For example, reusing blocks too big for smaller requests cause memory waste. How to solve that? Let’s see on this post of our series on malloc() and free().
No post anterior desta série sobre a implementação das funções malloc() e free(), mostramos como é possível reutilizar blocos de memória e reduzir o heap ao liberar os blocos mais novos. No entanto, a função atual reutiliza o bloco de memória livre mais recente, levando a um consumo de memória maior. Vamos analisar como isso […]
Este post faz parte de uma série sobre como implementar as funções malloc() e free(). No artigo anterior, aprendemos como reutilizar blocos de memória. Foi um grande avanço, mas há muito mais a melhorar. Um exemplo é a redução do tamanho do heap. Quando liberamos o último bloco de memória, movemos o topo do heap […]
Este post faz parte de uma série sobre como implementar as funções malloc() e free(). No artigo anterior, alteramos nossas funções para liberar alguns blocos de memória. Contudo, isto apenas ocorria se os blocos liberados fossem desalocados do mais novo ao mais antigo. Isto não faria muita diferença. Raramente a memória alocada dinamicamente se comporta […]
Este post faz parte de uma série sobre como implementar as funções malloc() e free(). Anteriormente, fizemos uma implementação são simplória que praticamente não libera memória nenhuma: um ponteiro aponta para o último bloco alocado, o que permite que abfree() o desaloque, mas somente ele. Uma opção melhor é fazer o último bloco apontar para […]
Posted in C, Libc, Linguagens de Programação, Linux
|
Tagged Alocação de memória, C, Crafting Interpreters, Desenvolvimento de Software, Gerenciamento de memória, Linguagens de Programação, malloc, Programação
|
Tickets no Jira tendem a acumular campos redundantes e opcionais, ficando complexos e confusos. Gosto do Jira, mas compreendo a frustração que isso causa. Por isso, inspirado pelas , sugiro aplicar a abordagem de criar tíquetes menores. Apenas três estados Uma maneira de limitar o tamanho dos tickets é simplificar o workflow restringindo o número […]
Já imaginou como as funções malloc() e free() são implementadas? Tive a oportunidade de aprender um pouco sobre isso, é fascinante! Neste post, apresento os conceitos (e implementações) mais básicos.
(Este é um post que publiquei no antigo blog da SEA Tecnologia. Como ainda é relevante, resolvi republicá-lo.) Uma das muitas aprendizagens que adquiri na antiga SEA Tecnologia é a criação de utilitários de teste. Utilitários de teste são uma maneira de reaproveitar código em testes unitários. Usualmente, isso é feito utilizando os métodos setUp […]
Tradicionalmente, considera-se uma boa prática comentar o código. Há algum tempo, tem-se revisto este conceito. Na Liferay, por exemplo, seguimos uma política de não comentar código. Pessoalmente, sou um entusiasta desta filosofia. Mas não quero apresentar ou defender esta estratégia: há muito material bom sobre isto. Quero discutir uma questão em aberto. Quem comenta quer […]
Dias atrás, recebemos aqui em casa um pacote inesperado. O que encontramos dentro dele foi ainda mais surpreendente! O que estaria acontecendo? Bem, acontece que há alguns meses atrás, eu completei incríveis dez anos trabalhando na Liferay! Isso não é apenas um long período, mas também uma jornada que me proporcionou muito crescimento. Morei em […]