Porque motivo não podemos estimar eficazmente um tempo de término baseado nas barras de progresso?

Nos actuais sistemas operativos as barras de progresso são algo banal. Teoricamente as mesmas indicam a percentagem já efectuada do download ou da instalação em causa, e deveriam ser relativamente eficazes no que fazem, mas a realidade é que não o são. Mas porque motivo isso acontece?

Com toda a certeza já vos aconteceram situações em que uma barra de progresso avança a um ritmo estabilizado aumentando a percentagem da sua tarefa a velocidade constante. No entanto, apesar de os 1, 2, 3, 4, e outros por cento terem aparecido a um intervalo de tempo mais ou menos equiparado, chegamos a uma percentagem onde para avançar de novo apenas mais 1% o tempo que temos de aguardar pode mesmo ser superior a tudo o que se passou até ali. Ora quando as coisas vão bem até aos 99% e o ultimo 1% chega a demorar quase tanto como a totalidade da instalação a coisa é particularmente desesperante.

E claro já nem queremos falar muito nas estimativas de tempo onde apesar de o tempo estimado já estar nos 0 segundos e a barra de percentagem nos 100%, a instalação ainda está a decorrer e a revelar-se bastante morosa. Ou então nos casos onde o tempo estimado sobe tremendamente a meio da instalação quando o previsto era já um tempo reduzido.

Mas porque motivo isto acontece? Não será possível alguém fazer uma barra realmente eficaz e menos mentirosa?

Publicidade

Retomando o nosso artigo

Comecemos por analisar as barras de progresso mais comuns, as relacionadas com os downloads.

Ora o tempo de um download deveria ser fácil de estimar. Basta dividir o tamanho do ficheiro pela velocidade de download e temos o tempo que falta para o fim.

Infelizmente a velocidade das conexões não é constante, e o fluxo de download varia. Mesmo em ligações de rede locais a ocupação da rede e a performance do router podem levar a alterações do tempo estimado a meio do download. E por esse motivo uma barra deste género nunca consegue ser precisa. Não se trata de um defeito na sua programação ou concepção, mas sim de factores externos que alteram as velocidades de download e como tal a impedem de ser precisa.

Mas e as barras de instalação? Será que essas não podiam ser mais precisas?

As barras de instalação são as mais complexas de serem criadas. As mesmas necessitam de verificar um grande número de operações que são efectuadas tais como os ficheiros que já foram lidos, os que já foram gravados, os que precisam de ser descompactados e os que são de escrita directa, e no caso dos compactados qual a  percentagem de descompactação que já foi efectuada.

Ora todo este tipo de operações acaba por ser dependente de uma grande variedade de factores que alteram as performances de cada processo. A leitura de um ficheiro depende não só da capacidade de transferência do media de onde está a ser lido, mas igualmente de outros factores como a sua fragmentação e a pista onde o mesmo se encontra uma vez que a velocidade de leitura dos discos rígidos e DVD’s é superior nas pistas exteriores, local onde a velocidade de leitura é superior. Já no que toca ao processo de gravação a situação é idêntica, dependendo a mesma dos mesmos factores da leitura, mas também da velocidade de gravação dos media, que normalmente é inferior no processo de gravação do que é no processo de leitura.

Publicidade

Retomando o nosso artigo

A acrescentar a tudo isto temos os ficheiros que necessitam de descompressão, ou mesmo os ficheiros criados na altura e que recolhem informações do sistema. Os primeiros ficam dependentes dos factores de leitura e escrita anteriormente descritos, mas também da capacidade geral de processamento do sistema, nomeadamente a velocidade do CPU, velocidade das RAM’s, capacidade do BUS de ligação entre a memória e o CPU, etc. Estes são factores igualmente existentes no simples processo de leitura/gravação, mas que nestes casos de descompressão assumem particular importância. E claro se for necessário recolher informações do sistema para criar ficheiros de configuração o tempo de resposta dos diversos periféricos da máquina entra igualmente como factor de peso.

Numa análise mais cientifica podemos pegar nas palavras do professor Brad Myers, do Carnegie Mellon’s Human-Computer Interaction Institute, e que nos refere: “Há muitas áreas da computação onde o sistema como um todo não pode prever o tempo que uma tarefa vai demorar a ser executada, pelo que as barras de progresso não se podem mover de forma consistente. E assim a estimativa do tempo exacto que demorará a instalar alguma coisa é algo tão complexo como uma abordagem informatizada de adivinhação”.

Publicidade

Retomando o nosso artigo
Pelos motivos expostos se percebe que, dada a impossibilidade física das barras de progresso serem exactas, os próprios programadores não se preocupam muito com a situação usando livrarias já executadas que verificam o número de operações total a ser efectuado,sem verificarem o verdadeiro peso de cada uma dessas operações, e fornecendo os dados de progresso baseado no número de operações já efectuadas. Por esse motivo há mesmo casos em que os programadores desistem totalmente do uso de barras de progresso limitando-se a colocar uma animação no ecrã que sugere que algo está a ocorrer enquanto aquele movimento estiver a ser efectuado.
Devido à inexactidão das barras de progresso, as mesmas foram alvo de estudos relacionados com a Psicologia humana numa vertente cientifica relativamente nova e chamada de “Time Design”. Assim chegou-se à conclusão que psicologicamente as barras de progresso funcionariam melhor se pudessem dar a ilusão de que se estão a mover a uma velocidade superior à que realmente estão. E nesse sentido foram estudados diversos padrões de animação e movimento para ver qual melhor se ajustava a essa ilusão. E apesar de se ter comprovado que há uma animação que se revela mais eficaz que todas as outras, vários modelos de animação revelaram-se adequados o suficiente para este uso, e daí o motivo porque actualmente a maior parte das barras de progresso apresentam uma animação ilusória de movimento.
Apesar de não serem precisas e dos seus defeitos, as barras de progresso são o que se chama de um mal necessário, pelo que, exactas ou não, são o melhor indicador que temos para o avanço do processo que estamos a analisar.
Publicidade

Posts Relacionados