domingo, 15 de junho de 2008

Benchmarks, medindo sem erros

Existem vários programas dedicados a medir a performance de um componente isolado, o disco rígido por exemplo, ou o desempenho do microcomputador como um todo, neste caso simulando o trabalho de programas do dia a dia.
Porém, é muito fácil forjar resultados, fazendo parecer que um produto é muito melhor do que o do concorrente, mesmo sem distorcer os resultados obtidos pelo programa.
Em geral, um determinado componente, um processador por exemplo, mesmo que no geral seja um pouco mais lento do que o do concorrente, sempre se sairá melhor do que ele em algumas aplicações. Se for criado um programa de benchmark que privilegie estas operações que são executadas mais rápido, temos o milagre de fazer um equipamento inferior parecer mais rápido. 
No mundo capitalista, este tipo de estratégia, de divulgar as vantagens de um produto, ao mesmo tempo que se esconde seus defeitos, é muito usada em todos os sectores, não apenas no mundo da informática. Por isso que em geral não se deve dar tanta atenção aos benchmarks divulgados pelos próprios fabricantes. Muitos são honestos ao apresentar os resultados, mas outros não; sempre nos deixando com o pé atrás. 
Mesmo tratando-se de testes feitos por pessoas bem intencionadas, sem nenhum tipo de vínculo com os fabricantes, muitas vezes temos resultados errados, simplesmente por serem usados programas de benchmark inadequados ou ultrapassados. Por exemplo, utilizando o Norton System Info para DOS, que é um benchmark bem antigo, num Pentium IV 3.0GHz e num Intel Core 2 Duo 2.2Ghz, os resultados obtidos mostrarão o Pentium IV comum mais de duas vezes mais rápido do que o Core 2 Duo , quando na prática o Core 2 Duo é muito mais rápido. 
Existem programas que realmente conseguem mostrar resultados bastante precisos. A Ziff Davis por exemplo, desenvolve excelentes programas de benchmark para várias situações; para medir o desempenho dentro de aplicativos de escritório, para medir o desempenho em gráficos 3D, etc.
Os programas da Ziff Davis podem ser encontrados em http://www.ziffdavis.com 
A fim de medir correctamente a performance, é preciso executar testes relativamente demorados.
Esta é a principal diferença entre bons programas de benchmark e outros que mostram erros gritantes, justamente o tempo do teste. Enquanto no Business Winstone da Ziff Davis, o teste pode durar várias horas, no Wintune o teste dura poucos segundos. Em 99% dos casos, estes testes rápidos são imprecisos. 
Outro diferencial são as próprias configurações utilizadas para executar os testes. Para medir o ganho de desempenho obtido na troca de um processador por outro ou de uma placa de vídeo por outra, é preciso manter todos os demais componentes, drivers, mesma versão do sistema operativo, etc., mudando apenas o componente a ser testado. Caso contrário, outros componentes contaminarão os resultados, tornando o teste impreciso. A simples troca do driver da placa de vídeo entre os testes pode fazer um equipamento aparecer muito mais rápido ou lento que o outro.
Naturalmente, é necessária também uma boa dose de bom senso e de conhecimento do quanto cada componente utilizado influencia na performance de cada programa. Por exemplo, certa vez vi um teste feito por um site estrangeiro, que media a performance de vários processadores, aplicando um filtro do Adobe Photoshop, chamado Gaussian Blur. Os resultados mostravam um mero Celeron 450 quase 15% mais rápido do que um Pentium III de 600 MHz. Lógico que alguma coisa tinha saído errado no teste. Vendo as configurações, foi fácil perceber que as máquinas utilizadas no teste tinham apenas 64 MB de memória RAM, enquanto o filtro utilizava arquivos de imagem grandes, de 100 MB cada um. Como os microcomputadores não tinham memória suficiente, eram obrigados a utilizar memória virtual para armazenar parte dos arquivos de imagem, fazendo com que o desempenho do disco rígido contaminasse os resultados. No teste, o Celeron havia sido equipado com um disco rígido mais rápido.
Moral da história: não acredite em todos os números que ver por aí. Lembre-se dos comerciais de sabão em pó; nem sempre um produto é tão melhor que outro quanto parece; tudo depende das condições onde os testes são realizados. 
Tão importante quanto o programa de benchmark escolhido, são os conhecimentos da pessoa que executar o teste, que deve ser capaz de escolher uma configuração ideal, eliminando qualquer factor que possa contaminar os resultados.

Sem comentários: