DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Desafio] - Processar Arquivos Grandes com Restrição de Memória

Conteúdo original nessa thread do Twitter


Ei dev,

Aceita um desafio pra lidar com restrição de memória?

  • Gere um arquivo várias linhas com cerca de 100MB de tamanho;
  • Faça um programa que leia esse arquivo e printe o resultado como na imagem;
  • Dockerize ele e o execute com limite de memória de 20m;

cc @sseraphini

img


O principal desafio aqui é trabalhar com um arquivo que não caiba na memória do processo. Usar o Docker é apenas uma sugestão para limitar a memória; se você conhece outros meios de fazer isso, manda bala!

Ah, os valores de tamanho de arquivo e memória são apenas uma sugestão.


Note que se for realmente usar o Docker, terá que copiar o arquivo para a imagem :)

[Dockerfile]
COPY arquivo-grande.txt diretorio-docker/

Discussion (1)

Collapse
varlen profile image
Varlen Pavani Neto

Here's my take at this challenge :)

from collections import defaultdict

ocurrences = defaultdict(lambda : 0)

with open('bigfile.txt', mode='r') as file:
    while line := file.readline():
        ocurrences[line.strip()] += 1

print(dict(ocurrences))
Enter fullscreen mode Exit fullscreen mode

Full explanation here: github.com/varlen/big-file-challenge