Existem muitos estudos comparativos e disponíveis online quando se trata do desempenho em tempo de execução de aplicativos criados usando um idioma ou outro. Alguns dirigidos por empresas, outros acadêmicos, outros apenas relatos de experiências pessoais.
Também obtemos uma parcela decente de estudos comparativos sobre os efeitos colaterais de uma linguagem de programação e suas ferramentas, como:
- tempos de construção,
- probabilidade de detecção de erros pós-produção,
- poder expressivo,
- etc ...
No entanto, recentemente fiquei cada vez mais chateado com o consumo de memória dos meus programas do que qualquer outra coisa. Isso pode advir do fato de que, enquanto a Lei de Moore está do nosso lado para o desempenho bruto, percebemos que outros gargalos são mais importantes. Isso e eu não costumo atualizar meu hardware de vez em quando, e tenho alguns "antigos" (leia o Pentium 4 de 3.6GHz e 2005-2006 com 4 GB de RAM) que hoje em dia são pressionados para serem utilizáveis em aplicativos grandes sem exigindo que eu tenha um grande problema para extrair todo o suco deles (escolha de SO, interface do usuário, ajustes de serviços e daemons, escolha de aplicativos a serem usados para uma tarefa ou outra ...). Honestamente, às vezes eu ligo top
ou procexp
choro ao ver a memória usada pelos programas mais inocentes.
Eu posso resolver isso, mantendo-me pressionado na direção listada acima, e essencialmente tentando me limitar e os programas que uso (eu gosto muito de programas cli por esse motivo, eu acho), mas também não posso deixar de pensar que talvez estejamos fazendo errado.
Ferramentas modernas para necessidades modernas
Obviamente, idiomas de nível superior são sem dúvida melhores e justificam seu valor de peso morto. Algumas escolhas de design foram feitas por boas (ou supostamente bem-intencionadas) razões na época, em muitas cadeias de ferramentas. Bibliotecas compartilhadas, modelos de memória, pré-processadores, sistemas de tipos, etc ... Mas alguns podem ser mais viáveis que outros com nosso hardware moderno, e eu ficaria curioso para ler alguns estudos sérios sobre o assunto.
Então, minha pergunta é: existe um pendente no jogo Benchmarks e outros que se concentram na comparação do consumo de memória de tempo de execução dos idiomas?
E ainda mais, existem alguns estudos que fazem referência cruzada com outros parâmetros (semelhante ao que este artigo fez, por exemplo, para outros critérios, também baseado no jogo Benchmarks )?
How much memory consumption makes you weep?
30 MB para uma guia inativa do Chrome sem extensões, 100 MB para o CCC da ATI, até 11 MB para um plug-in de googletalk inativo ou 23 MB para um driver de impressora inativo. Essas coisas e muito mais. O exemplo do chrome está um pouco fora do parque, por ser um exemplo mais complexo, mas os outros já me surpreendem bastante.