Benchmark (computação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Em computação, benchmark é o ato de executar um programa de computador, um conjunto de programas ou outras operações, a fim de avaliar a performance relativa de um objeto, normalmente executando uma série de testes padrões e ensaios nele.

O termo "benchmark" é também comumente usado para os próprios programas (de benchmarking) desenvolvidos para executar o processo. Normalmente, benchmarking é associado com avaliação de características de performance de um hardware de computador como, por exemplo, a performance da operação de ponto flutuante de uma CPU, mas há circunstâncias em que a técnica também é aplicável a software. Benchmarks de software são feitos, por exemplo, em compiladores ou sistemas de gerenciamento de banco de dados.

Benchmarks provêm um método de comparação da performance de vários subsistemas dentre as diferentes arquiteturas de chips e sistemas. Benchmarking é útil para o entendimento de como o gerenciador de banco de dados responde sob a variação de condições. Pode-se criar cenários que testam o tratamento de deadlock, performance dos utilitários, diferentes métodos de carregar dados, características da taxa de transição quando mais usuários são adicionados e ainda o efeito na aplicação usando uma nova versão do produto.

Propósito[editar | editar código-fonte]

Com a evolução das arquiteturas de computadores, ficou cada vez mais difícil comparar a performance de diferentes sistemas de computação somente olhando suas especificações. Por isso, testes foram desenvolvidos para serem feitos em diferentes sistemas, permitindo que esses resultados possam ser comparados entre as diferentes arquiteturas. Por exemplo, enquanto os processadores Pentium 4 geralmente operam a frequências de clock mais altas que os processadores AMD Athlon XP, isso não necessariamente se traduz como maior poder computacional. Em outras palavras, um processador AMD mais lento, quanto a frequência de clock, pode ter um desempenho tão bom nos testes de benchmark quanto um processador Intel operando a uma frequência mais alta.

Benchmarks são desenvolvidos para usar um determinado tipo de comportamento em um componente ou sistema. Benchmarks "sintéticos" fazem isso através de programas especialmente criados para impor o tipo de comportamento desejado no componente. Em oposição, benchmarks "de aplicação" executam programas do "mundo real" no sistema. Embora normalmente os benchmarks de aplicação ofereçam uma melhor medida para a performance no "mundo real" para um dado sistema, benchmarks sintéticos ainda são usados no teste de componentes individuais, como um disco rígido ou um dispositivo de rede.

Benchmarks são particularmente importantes no design de microprocessadores semicondutores, dando aos arquitetos de processadores a habilidade para mensurar e propor mudanças nas decisões microarquiteturais. Por exemplo, se um benchmark extrai os algoritmos chave de uma aplicação, ele conterá aspectos de performance sensíveis dessa aplicação. Executando isso em um "trecho" muito menor em um simulador com ciclos precisos, podem-se obter pistas de como aumentar a performance do sistema.

Antes de 2000, arquitetos de computadores e microprocessadores usavam SPEC para fazer isso, embora benchmarks de SPEC baseados em Unix eram bastante demorados e, portanto, pesados para usar.

Benchmarks mais comuns[editar | editar código-fonte]

Padrão Industrial (auditado e verificado)[editar | editar código-fonte]

Outros[editar | editar código-fonte]

Benchmarks com código-fonte abertos[editar | editar código-fonte]

  • miniBench: um benchmark compreensível em linha de comando escrito em C++. MiniBench é multi-plataforma e contêm mais de 90 testes diferentes. MiniBench está disponível em OpenSourceMark.
  • TPoX: um benchmark processador de transações XML para banco de dados em XML databases
  • Dhrystone: Performance da aritmética inteira
  • Fhourstones: um benchmark de inteiros
  • Whetstone: Performance da aritmética de ponto flutuante
  • ApFloat: ponto flutuante
  • Linpack / LAPACK
  • OpenSourceMark: um poderoso, compreensível conjunto de benchmarks e utilidades de sistema com código-fonte aberto escrito em Delphi. OpenSourceMark tem uma GUI amigável e apresenta uma visualização flexível do resultado.
  • MemPerf: banda de memoria
  • LLCBench: um grupo de benchmark para cache, MPI, etc.
  • NAS parallel benchmarks
  • PAL: um benchmark para engines físicas em tempo real
  • Povray: renderizador 3D
  • Bonnie++: Arquivo Entrada/Saída
  • HINT: raqueia o sistema computacional como um todo.
  • MediaBench : Benchmark suite for multimedia systems.

Benchmarks para Microsoft Windows[editar | editar código-fonte]

Benchmarks para Mac OS X[editar | editar código-fonte]

Benchmarks para Java[editar | editar código-fonte]

Benchmark para códigos Delphi[editar | editar código-fonte]

Benchmarks para Sistemas Embarcados[editar | editar código-fonte]

O que se segue são benchmarks publicados pela EEMBC especificamente para sistemas embarcados e dipositivos comsumidores [1].

Benchmark para Celulares[editar | editar código-fonte]

  • jBenchmark é o ato de inflação de transito....

Livros[editar | editar código-fonte]

Jim Gray (Editor), The Benchmark Handbook for Database and Transaction Systems (2nd Edition), Morgan Kaufmann, 1993, ISBN 1-55860-292-5

Database Benchmarking Practical Methods for Oracle & SQL Server Dr. Bert Scalzo, Kevin Kline, Claudia Fernandez, Donald K. Burleson, Mike Ault, 2007, ISBN 0-9776715-3-4

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]