DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Conceito/Desafio] - CPU, Memory, I/O Bound: O que é isso?

Conteúdo original nessa thread do Twitter


Ei dev,

Já ouviu falar que um programa é cpu bound, memory bound, i/o bound, etc.? Não? Então cola aí pra que da próxima vez que você falar com seu crush devops, ele te note.

cc @sseraphini

img


O termo "bound" pode soar complexo, mas é simples de entender na verdade. "Bound" pode significar "limite", que pode ser uma boa tradução livre pro nosso contexto.

Dessa forma, "cpu bound" poderia ser traduzido como "limitado pela cpu" e assim por diante, por exemplo.


A tradução já explicou boa parte desse conceito. Então, quando dizemos que determinado programa é, por exemplo, memory bound estamos dizendo que sua performance está atrelada/limitada primordialmente à memória disponível. Ou seja, melhoraríamos sua performance com mais memória.


O mesmo se aplica para cpu (performance limitada pela cpu), gpu, tamanho do disco, i/o (input/ouput ou entrada/saída), etc.

Aliás, i/o é um termo meio vago que pode significar i/o em disco, rede, periféricos externos, etc. É legal saber sobre isso.

Ah, I/O se pronuncia "Ai-Ou".


É meio que isso o conceito. Não falei que era simples?

Se você quiser explorar um pouco mais esse assunto na prática, dá pra facilmente restringir recursos com o docker em relação a memória e cpu com as flags --memory e --cpus.

Dá uma olhada aqui ↓
https://docs.docker.com/config/containers/resource_constraints/


Vai lá, escreve algum programa simples e tenta descobrir se ele é memory ou cpu bound.

Se chegou até aqui, não preciso nem dizer, né? Dá um abraço sem love bound aqui ó 🫂 ♥️

Obrigado demais pela moral!

Discussion (0)