1
resposta

[Dúvida] cash friendly e arrays

ainda tentando entender sobre a melhor forma de aproveitar a memoria cash, gostaria de saber se, no caso de listas, se eu chamar o item 1 na lista e depois chamasse o item 0 (nao sei nem se é possivel, mas suponhamos que seja), seria o que o exemplo quis mostrar que é ruim pra memoria CASH ou nao tem nada haver? estou tentando associar com um evento pratico que posso pensar sobre na hora de escrever o meu codigo

1 resposta

Olá, Mariana!

No seu exemplo, você menciona uma lista e o acesso aos itens 1 e 0. Em um programa cache-friendly, a ideia é que, se você acessar um item em um array (ou lista), é provável que você também acesse os itens próximos a ele em breve. Isso ocorre porque os dados são carregados na cache em blocos, então, quando você acessa um item, os itens próximos a ele também são carregados na cache.

Agora, se você acessar o item 1 e depois o item 0, isso não é necessariamente ruim para a cache, desde que você esteja acessando os itens de forma linear ou previsível. O que pode ser prejudicial para o desempenho da cache é se você estiver acessando os itens de maneira não linear ou imprevisível. Por exemplo, se você acessar o item 1, depois o item 1000, depois voltar para o item 2 e assim por diante, isso pode resultar em muitos cache misses (quando o dado necessário não está na cache), o que pode diminuir o desempenho do seu programa.

Em resumo, o seu exemplo não é ruim para memória cache.

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!