As barras de Loading nunca acertam no tempo. Porquê?

Estamos em 2021, mas verdade seja dita, as barras de loading, ou barras de ‘progressão’, continuam a ser tão más como na altura em que foram introduzidas na nossa vida. O que levanta uma questão… Porque razão é tão complicado, para um computador, determinar quanto tempo irá demorar certa tarefa?

Vamos tentar perceber!

As barras de Loading nunca acertam no tempo. Porquê?

Portanto, as barras de loading existem na nossa vida de várias maneiras, nós é que nem sempre percebemos que elas estão lá.

Por exemplo, quando quer passar a passadeira e o semáforo verde tem um “temporizador” a revelar quantos segundos tem para fazer o percurso, isto também é uma espécie de interface de progressão. Aliás, até o ecrã de um elevador, que tem a grande missão de demonstrar em que piso está, também serve para ter uma ideia da progressão da tarefa desta máquina.

Em suma, a ideia deste tipo de sistema, é você (o utilizador), ter uma ideia de quanto irá demorar fazer uma certa tarefa, demonstrando que algo está mesmo a acontecer. Ou seja, exatamente o que a barra de progressão tenta fazer no mundo computacional.

Afinal de contas, sem algum tipo de barra de progressão, no mundo dos computadores, nunca saberia se a tarefa está a progredir, se está encravada, ou pasme-se, se por acaso se esqueceu de carregar no botão ‘Iniciar’.

Como funciona uma barra de progressão? (Loading bar)

Muito resumidamente, uma barra de progressão pega na tarefa em mãos, divide-a em subtarefas, dá uma estimativa de tempo a cada uma delas, e depois apresenta a barra, uma percentagem, e por vezes, uma estimativa em minutos, de quanto tempo o processo vai demorar.

Por exemplo, temos um exemplo muito simples de uma barra de progressão que nunca falha. Vá ao YouTube, carregue em qualquer vídeo, e vai ver a barra de progressão lentamente a crescer, à medida que vê mais e mais conteúdo do vídeo. (Se o vídeo tiver 100 segundos (1m40), e já tiver visto 10 segundos, então viu 10% do vídeo, e a barra está a ocupar 10% do espaço total.)

No entanto, no caso desta barra, a missão é muito simples! O leitor do YouTube tem a simples tarefa de apresentar o vídeo a um framerate estável, nada mais, anda menos que isto. Instalar um programa já não é assim tão simples!

Como funciona a instalação de um programa, e como é que a barra estima o tempo de loading?

Pois bem, um instalador vai ter quase sempre de fazer download de ficheiros extra, vai ter de descomprimir vários tipos de ficheiros, vai analisar, ler, instalar, e posteriormente apagar alguns destes ficheiros, e por fim, vai fazer algumas mudanças no sistema.

A equipa de desenvolvimento sabe mais ou menos quanto tempo é que cada tarefa irá demorar, e como tal, o tempo já vem mais ou menos pré-determinado. No entanto, cada sistema é um sistema. Por isso, a parte de download de ficheiros vai ser impactada pela velocidade da sua internet. A descompressão de ficheiros vai ser impactada pelo poder de processamento da sua máquina. A leitura, instalação e remoção de ficheiros vai ser impactada pela velocidade do seu armazenamento, especialmente se for um disco rígido tradicional, e por fim, a parte da mudanças no sistema, irá depender do sistema operativo.

Em suma, é virtualmente impossível contar com uma barra de progressão 100% fiável, porque todas as subtarefas da instalação de um programa têm de lidar com problemas diferentes.

Aliás, até quando tenta copiar um ficheiro de um lado para o outro, a barra é simplesmente incapaz de mostrar uma progressão estável. Sabe porquê?

Pois bem, poderíamos pensar que o tempo de progressão seria condicionado pelo número de ficheiros a serem transferidos. No entanto, cada ficheiro pode (e provavelmente tem) um tamanho diferente.

Então, talvez seja boa ideia ter em conta o tamanho da totalidade dos ficheiros movidos. Bem… Isso também não resulta, porque copiar ou mover ficheiros pequenos, é muito mais rápido que mover ficheiros grandes.

Existem mais condicionantes!

Imagine que quer fazer a renderização de um vídeo, e quando termina a sua edição, lá aparece a barra de progressão, a dizer quanto, mais ou menos, falta até tudo estar pronto.

Parece que vai tudo correr de forma linear, certo? Errado! Como é um workload exigente, o sistema pode sobreaquecer, e como tal, as frequências dos componentes chave irão ter de baixar, o que por sua vez vai ter um impacto na performance da máquina, e consequentemente nesta mesma estimativa.

Conclusão

Não existe uma solução 100% fiável, e é exatamente por isso que as barras de progressão por vezes parecem super rápidas, e do nada, ’empancam’. Aliás, alguma vez usou a técnica da unha? Ou seja, meter a unha em cima do fim da barra, para perceber se ela mexeu algum centímetro? Eu já!

Siga a Leak no Google Notícias e no MSN Portugal.

Receba as notícias Leak no seu e-mail. Carregue aqui para se registar. É grátis!

Nuno Miguel Oliveira
Nuno Miguel Oliveirahttps://www.facebook.com/theGeekDomz/
Desde muito novo que me interessei por computadores e tecnologia no geral, fui sempre aquele membro da família que servia como técnico ou reparador de tudo e alguma coisa (de borla). Agora tenho acesso a tudo o que é novo e incrível neste mundo 'tech'. Valeu a pena!

Leia também