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ã

Curiosity e suas 2,5 milhões de linhas de código

Após o sucesso do pouso da Curiosity, fiquei imaginando em que linguagem de programação foi utilizada, principalmente, no módulo de pouso. Meu palpite era na linguagem C, e depois de algumas pesquisas no Google, pude confirmar minhas suspeitas.

Agora, por que os programas rodam tão bem, visto que o computador (um RAD750) é bem modesto e são cerca de 2,5 milhões de linhas de código?

O primeiro ponto a ser observado é o sistema operacional. A nave usa o VxWorks. Talvez você não conheça o VxWorks pelo nome mas com certeza já utilizou algum produto que o utiliza. Veja a lista de produtos que usam este sistema operacional - é auto-explicativa.

O segundo ponto, são as regras de codificação seguidas, das quais destaco (são 31 regras no total):
  • Utilizar funções com poucas linhas de código, para tornar o código simples e compreensível;
  • Evitar o uso de recursão;
  • Verificar o fim dos loops;
  • Não utilizar alocação dinâmica de memória (após a inicialização);
  • Checar valor de retorno das funções;
  • Checar os parâmetros das funções.
Ou seja, nada demais: simplesmente clareza no código e cuidado na programação.

Fonte: JLOUIS Ramblings

Comentários

Postagens mais visitadas deste blog

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP