quinta-feira, 3 de abril de 2008

Aplicações com alta performance.

Estou trabalhando em um tipo de aplicação inédita para mim até então. Aplicações que fazem "o meio de campo". Não é HTML, não é Swing, não roda no Tomcat, não tem tela. Recebe mensagens, trata mensagens, chama outras aplicações, redireciona mensagens.

Mas um comentário chamou minha atenção:
// Se demorar mais de 40 milisegundos, avisa

Sim, isso mesmo, 40 milisegundos para executar um procedimento pode ser uma eternidade. Aliado a isso, já estou achando normal ouvir coisas como:
Pacotes com 700 bytes? Muito grande, precisamos reduzir

Sim, 700 bytes podem ser desastrosos nesse tipo de aplicação.

Essa passou a ser minha realidade. A aplicação que eu estou trabalhado, processa milhares de mensagens por segundo, e qualquer byte a menos é uma grande vitória. Ela possui praticamente uma "arvore de threads". Se em uma chamada não responder em menos de 40 milisegundos, pode significar mensagens sem processamento.

Isso é Java Roots. Não existe espaço para frameworks, nem pacotes que possam dar problemas sem a gente saber onde mexer, nem fazer o processamento ficar mais demorado. Nossa ultima vitória foi reduzir em quase 10% o tempo de acesso a disco mudando algumas classes do Java.

Estou curtindo muito, sem contar que fiquei as ultimas duas semanas só mexendo em código sem rodar nada.

Um comentário:

  1. Um amigo meu já me contou de uma aplicação assim, creio que feita em C# ou C++. COnfesso que fiquei com inveja, ou pelo menos vontade de ter participado da equipe :D

    ResponderExcluir