Desempenho real, desempenho percebido

Se o senhor já usou o Windows Vista, provavelmente notou que O desempenho da cópia de arquivos do Vista é visivelmente pior do que o do Windows XP. Eu sei que foi uma das primeiras coisas que notei. Aqui está a ironia: a cópia de arquivos do Vista é baseada em um algoritmo aprimorado e o na verdade, executa melhor na maioria dos casos, do que o XP. Então, por que ele parece tão lento?

Vamos começar com o artigo de Mark Russinovich, tipicamente excelente e exaustivamente detalhado sobre o algoritmo de cópia de arquivos do Vista:

Talvez a maior desvantagem do [new Vista file copy algorithm]e a que causou a reclamação de muitos usuários do Vista, seja a de cópias que envolvem um grande grupo de arquivos com tamanho entre 256 KB e dezenas de MB, o desempenho percebido da cópia pode ser significativamente pior do que no Windows XP. Isso ocorre porque o uso de E/S de arquivo em cache pelo algoritmo anterior permite que o Explorer termine de gravar os arquivos de destino na memória e descarte a caixa de diálogo de cópia muito antes de o thread de gravação do Gerenciador de Cache ter realmente confirmado os dados no disco. Com a implementação sem cache do Vista, o Explorer é forçado a esperar que cada operação de gravação seja concluída antes de emitir mais e, por fim, que todos os dados copiados estejam no disco antes de indicar a conclusão de uma cópia. No Vista, o Explorer também espera 12 segundos antes de fazer uma estimativa da duração da cópia e o algoritmo de estimativa é sensível a flutuações na velocidade da cópia, o que agrava a frustração do usuário com cópias mais lentas.

Como Mark observa ironicamente, a cópia de arquivos não é tão fácil quanto parece à primeira vista. Como em muitas coisas na vida, a percepção é a realidade: se os usuários veem a cópia de arquivos como mais lenta, ela é mais lento. Apesar de todos os aprimoramentos algorítmicos, apesar dos resultados superiores de benchmark de cópia de arquivos, o desempenho de cópia de arquivos do Vista é pior do que o do Windows XP.

Eu não poderia pedir um exemplo mais perfeito desse pequeno segredo sujo dos fatores humanos: o desempenho percebido é mais importante do que o desempenho real. Algoritmos de cópia sofisticados não necessariamente ajudarão o senhor a criar uma barra de progresso rápida. Mas entender como o cérebro dos seus usuários funciona certamente o ajudará, conforme ilustrado em Repensando a barra de progresso:

Os seres humanos não percebem a passagem do tempo de forma linear. Isso, aliado ao comportamento irregular das barras de progresso, faz com que a percepção humana da duração do processo varie. A compreensão de quais comportamentos perceptualmente
pode ser usado para criar uma barra de progresso que pareça mais rápida, mesmo que a duração real permaneça inalterada.
Este documento descreve um experimento que buscou identificar padrões na percepção do usuário sobre o comportamento da barra de progresso. Os resultados são então analisados para classificar os comportamentos que perceptualmente aceleram ou desaceleram a execução do processo.

O estudo (pdf) usou oito funções de comportamento de progresso e, em seguida, acompanhou as reações dos usuários a cada uma delas.

Gráfico da função de progresso

Embora todas as barras de progresso tenham levado exatamente a mesma quantidade de tempo No teste, duas características fizeram com que os usuários pensassem que o processo era mais rápido, mesmo que não fosse:

  1. barras de progresso que se moviam suavemente em direção à conclusão
  2. barras de progresso que se aceleraram até o final

Em retrospecto, parece óbvio por que o projeto de cópia de arquivos do Vista falhou tão miseravelmente e precisou ser corrigido com o Service Pack 1. É um exemplo clássico desses princípios em ação:

  1. O Explorer aguarda 12 segundos antes de fornecer uma estimativa da duração da cópia, o que certamente não proporciona uma sensação de progresso suave.
  2. A caixa de diálogo de cópia não é descartada até que o thread de gravação por trás tenha confirmado os dados no disco, o que significa que a cópia é mais lenta no final.

A ideia de que o desempenho é determinado em grande parte pela percepção do usuário e não pelo tempo real do relógio de parede pode ser libertadora. Assim como um mágico que usa a habilidade da mão para realizar truques de mágica, o senhor pode aparentemente alterar a realidade. Mas isso também pode ser frustrante. Mesmo que o senhor acerte as partes técnicas, com dados de benchmark para apoiá-lo, fatores sutis de percepção humana ainda podem negar seu trabalho, como descobriram os infelizes desenvolvedores do Vista. O que um desenvolvedor pobre pode fazer?

Mas será que nós dois estamos perdendo o verdadeiro objetivo de possuir e usar um PC? Qualquer medição baseada em cronômetro de tarefas isoladas realizadas por componentes individuais de hardware e software pode realmente medir o valor de um investimento em tecnologia? Acho que não.

Essa não é uma pergunta nova para mim. No início da década de 1990, quando eu era editor da falecida e lamentável PC Computing, diferenciamos nossas análises de produtos das análises da PC Magazine, que é uma publicação irmã, concentrando-nos na usabilidade. O conceituado PC Magazine Labs era a loja por excelência de “velocidades e feeds”. Nós nos concentrávamos na usabilidade, chegando ao extremo de gastar uma pequena fortuna (ainda me lembro das batalhas orçamentárias) para construir um laboratório de usabilidade de última geração e contratar profissionais de usabilidade para administrá-lo.

Não cometa o mesmo erro que a equipe de desenvolvimento do Vista cometeu. Pense de forma mais holística do que apenas benchmarks. Considere também a percepção do usuário sobre o processo. Recomendo o livro do Tog Maximização do desempenho humano como um ótimo ponto de partida.