“I double cross you and you get mysterious mail”

Com o avanço da tecnologia, principalmente no decorrer dos últimos 30 anos, chegamos a uma época em que a grande maioria dos profissionais de desenvolvimento de software e tecnologia, “terceirizaram o desenvolvimento” para os diversos frameworks existentes nas mais diversas linguagens, limitando assim muito o potencial da própria solução que se propõe a resolver.

Infelizmente técnicas simples e eficazes, outrora largamente utilizadas no passado, passam despercebidas hoje e sequer são implementadas pois esperamos que uma peça pronta o faça para nós.

Uma dessas técnicas é conhecida como double-buffering, amplamente utilizada em jogos e comunicação de dados desde os primórdios da computação, principalmente depois que dispositivos baseados em DMA passaram a ser mais populares e acessíveis do que os dispositivos baseados em portas (Port Mapped I/O), possibilitando assim um paralelismo “implicito” feito por hardware e software.

Single buffering technique

A indústria de jogos tem utilizado a técnica de double buffering, por exemplo, para evitar o “flickering” ao se desenhar diretamente no dispositivo de vídeo, em alta velocidade, o que geralmente causa perda e/ou corrupção de frames gerando esse efeito indesejado, dentre outros usos.

Double buffering technique

No campo da comunicação de dados, double buffering tem sido amplamente utilizado principalmente em processamento de dados que exigem um certo grau de paralelismo, o que é comumente encontrado em qualquer modelo simples de produtor/consumidor.

Double buffering in communication strategy

Como infelizmente perdemos anos preciosos de nossas vidas terceirizando as soluções que deveríamos ter feito nós mesmos, sugiro agora um pequeno “atalho” que é esse vídeo abaixo, bem como sugiro que se inscrevam no canal do cara do vídeo, que contém vídeos rápidos sobre diversas técnicas extremamente úteis e talvez por isso tenha poucos views e inscritos.

[]’s
PopolonY2k

Referência na internet

https://doc.embedded-wizard.de/framebuffer-concepts?v=9.00

https://gameprogrammingpatterns.com/double-buffer.html