Postagem em destaque

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a mais simples foi feita, pois nã

Artigo 8 - Compressão de dados

(Publicado originalmente entre 1994/95)

Provavelmente a compressão de dados surgiu da necessidade de se armazenar grande volume de dados em pouco espaço - vale a pena lembrar que o Bug do Ano 2000 é decorrente desta limitação que existia nos micros até a pouco tempo atrás.

Quando digitamos um documento em qualquer editor de textos, normalmente utilizamos cerca de 96 caracteres de um universo de 256, ou seja, 38%. Que representa um "desperdício" de 62%. Desses 96 caracteres, 14 letras (A, S, E, D, R, O, I, U, N, C, M, T, P, L) mais o espaço em branco representam cerca de 90% de um texto. Então, utilizamos os caracteres que aparecem com mais frequência com o menor número de bits (zeros e uns) possível. Na prática, essa técnica permite uma compressão em torno de 45%, dependendo do texto. Mas essa é somente uma das técnicas empregadas na compressão de dados, inclusive alguns algoritmos verificam qual a melhor técnica a ser utilizada em determinado tipo de dados.

Outras técnicas procuram sequências repetidas de letras, ou ainda, de bits, e representam as sequências mais repetidas também com o menor número de bits possível. Quando os dados a serem comprimidos são imagens que não necessitem de alta qualidade e sim grande velocidade no processo compressão/descompressão, o algoritmo utilizado é voltado mais para a velocidade e não tanto para a taxa de compressão máxima, deixando assim, a qualidade final da imagem comprimida/descomprimida um pouco comprometida. Isso é bastane utilizado na Internet, onde a velocidade nas animações é essencial.

Os compactadores de dados têm diversas utilidades:
permitem aos usuários levar (em alguns casos) arquivos com mais de 1.44MB, em apenas um disquete;
torna as transmissões via modem diversas vezes mais rápida;
agiliza o backup (cópia de segurança);
quando a compressão de dados é utilizada com senhas, mantém a privacidade dos dados
diminui o espaço utilizado nos discos rígidos, principalmente dos programas ou dados pouco utilizados.

Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP