FERRAMENTAS LINUX: Adeus, lentidão: o KDE finalmente resolve cópia de arquivos pequenos no Dolphin

sexta-feira, 31 de julho de 2026

Adeus, lentidão: o KDE finalmente resolve cópia de arquivos pequenos no Dolphin

 



O KDE corrige bug de 2014 que tornava cópia de arquivos pequenos 20x mais lenta no Dolphin. Entenda a solução, benchmarks e quando chega ao Plasma.


Se você usa o KDE Plasma há algum tempo, provavelmente já passou por esta situação: precisa copiar uma pasta com milhares de fotos, arquivos de código-fonte ou thumbnails, e o Dolphin simplesmente arrasta. A barra de progresso avança a passo de tartaruga, enquanto no terminal o comando cp resolve o mesmo trabalho em fração do tempo. 

Essa frustração tem nome e sobrenome: bug 342056, reportado em 2014.

Pois bem, depois de 12 anos, a história está mudando. O desenvolvedor do KDE Méven Car encarou o problema de frente e apresentou uma solução que promete equiparar a velocidade de cópia do Dolphin à do bom e velho cp. 

Neste artigo, você vai entender por que isso acontecia, como a correção foi implementada e quando poderá usar essa melhoria no seu dia a dia.


O que é o KIO e por que ele era tão lento?

A arquitetura que veio do ano 2000


O KIO (KDE Input/Output) é a espinha dorsal de praticamente todas as operações de arquivo no KDE. Quando você copia um arquivo no Dolphin, abre uma pasta via sftp:// ou acessa um compartilhamento SMB, está usando o KIO.

Sua arquitetura foi projetada no início dos anos 2000, quando a melhor forma de evitar que a interface congelasse durante operações de I/O era usar processos separados — os chamados workers (antigos kioslaves). 

A comunicação entre o aplicativo e esses workers acontecia via sockets (um mecanismo de comunicação entre processos).

Essa escolha foi inteligente para a época: se um worker de rede falhasse, o gerenciador de arquivos não cairia junto. Porém, para operações locais (file://), esse isolamento trazia um custo desnecessário.


O custo oculto de cada arquivo


Em 2022, o desenvolvedor David Faure deu um passo importante: passou a executar o worker de arquivos locais em uma thread dentro do próprio aplicativo, eliminando o custo de criação de processos e troca de contexto.

Mas havia um detalhe que passou despercebido: mesmo com a thread interna, a comunicação ainda usava um socketpair, serializando cada comando como se fossem processos separados. 

Para cada arquivo copiado, o sistema:

  • Leia a tabela de montagem (/proc/self/mountinfo);

  • Abria o arquivo de origem e destino;

  • Fazia uma viagem de ida e volta (round-trip) pelo socket interno.

Multiplique isso por milhares ou milhões de arquivos, e o resultado é uma lentidão brutal. O relato original do bug é chocante: copiar uma pasta de 15 GB com cerca de 3 milhões de arquivos pequenos levava de 5 a 10 horas no KDE, contra apenas 20 minutos com rsync.


O que mudou ? As três melhorias que transformaram a cópia


Méven Car atacou o problema em três frentes. O resultado? Uma redução de tempo que impressiona.


1. Eliminação do socket para workers em processo (KIO 6.29)

A primeira medida foi remover o socketpair que ainda existia entre a thread do worker e o aplicativo. Com isso, a comunicação deixou de ser serializada, eliminando um gargalo que representava cerca de 15% do tempo de bloqueio em cópias de muitos arquivos pequenos.


2. Fim da verificação redundante do sistema de arquivos

Antes, a cada arquivo copiado, o KIO consultava a tabela de montagem do sistema (/proc/self/mountinfo) para determinar características do sistema de arquivos de destino. Agora, essa verificação é feita uma única vez por operação de cópia, e não por arquivo.


3. Agrupamento em lote (batch-copy folding)

A terceira e mais significativa mudança foi implementar o agrupamento de comandos em lote. Em vez de enviar um comando para cada arquivo individualmente, o KIO agora agrupa toda uma sequência de arquivos em um único comando. Isso reduz drasticamente a sobrecarga de comunicação.


Benchmarks: números que falam por si


Os testes foram realizados copiando 5.000 arquivos de 4 KB em um sistema com Intel Core i7-1365U e sistema de arquivos ext4. Confira a evolução:



O salto é impressionante: 18 vezes mais rápido que o KIO 6.28. Nas palavras do próprio Méven Car:

"O caso dos arquivos pequenos é a história. KIO 6.28 era cerca de 20 vezes mais lento que o cp, exatamente a proporção que o relatório de 2014 mencionava. Remover o socket para workers em processo, junto com a eliminação da sonda no sistema de arquivos de destino por arquivo, reduziu de 1,6 s para 0,4 s (cerca de 4 vezes mais rápido). O agrupamento em lote reduziu para 88 ms, essencialmente a velocidade do cp e cerca de 18 vezes mais rápido que o 6.28. Aquela frase 'eu uso cp em vez do Dolphin' finalmente tem uma resposta."

Para arquivos maiores, o ganho é menor, pois o gargalo passa a ser a transferência dos bytes em si. Mas para o dia a dia de quem lida com projetos de desenvolvimento, bibliotecas de fotos ou qualquer pasta com muitos arquivos pequenos, a diferença é transformadora.


Produto Recomendado


Produto recomendado: acelere suas transferências com um SSD externo
Se você trabalha com grandes volumes de arquivos, a velocidade de cópia não depende só do software — o hardware faz toda a diferença. Um bom SSD externo pode transformar sua rotina de transferências.

Recomendação: SanDisk Extreme SSD Portátil 1TB — com velocidades de leitura e gravação de até 1.050 MB/s, conexão USB 3.2 Gen 2 e resistência a quedas e poeira. Perfeito para quem precisa mover grandes projetos, bibliotecas de fotos ou máquinas virtuais com agilidade.


SanDisk Extreme SSD Portátil 1TB -> https://link.amazon/B06nnUVty


Eu ganho uma comissão quando você faz uma compra.


FAQ — Perguntas frequentes

1. A correção já está disponível para todos os usuários do KDE ?

Ainda não. O código foi desenvolvido e está em processo de revisão para ser incorporado em uma versão futura do KDE Frameworks (após a 6.29). Distribuições como o KDE Neon, openSUSE Tumbleweed e Arch Linux costumam ser as primeiras a receber as novidades. 

Para versões estáveis (como Ubuntu LTS ou Debian), pode levar mais tempo até o backport.

2. Por que o Dolphin era tão mais lento que o cp no terminal ?

Porque o cp é um comando simples que copia arquivos diretamente, sem camadas de abstração. O Dolphin, por meio do KIO, precisa se comunicar com um worker (mesmo que em thread) via socket, serializar comandos, verificar o sistema de arquivos a cada arquivo e gerenciar a interface gráfica simultaneamente. 

Toda essa camada extra de abstração, que faz sentido para protocolos de rede, se torna um peso morto para cópias locais.

3. A melhoria beneficia apenas o Dolphin ou outros programas também ?


Todos os aplicativos que usam KIO se beneficiam. Isso inclui o Gwenview (ao importar fotos), o Kate (ao salvar múltiplos arquivos), o Krusader e qualquer outro software KDE que utilize a camada de I/O do framework. 

A correção atua diretamente no KIO, portanto o ganho é sistêmico.


Quando essa melhoria chega ao seu KDE?


O código já foi desenvolvido e está em fase de revisão. A previsão é que seja incorporado em uma versão posterior ao KDE Frameworks 6.29.

Como verificar se você já tem a melhoria?
No terminal, execute:
bash
kf6-config --version

Se a versão do KIO for 6.29 ou superior (com o patch aplicado), você já deve sentir a diferença. Caso contrário, ainda será necessário aguardar a atualização da sua distribuição.


Enquanto isso, o que fazer ?


Se você ainda não tem a versão corrigida e precisa copiar muitos arquivos pequenos, a recomendação continua sendo usar o terminal:

bash
cp -r pasta_origem pasta_destino

Ou, para cópias com mais recursos (como progresso e retomada):
bash
rsync -avh --progress pasta_origem/ pasta_destino


Checklist para aproveitar ao máximo a cópia de arquivos no KDE

Copie e use esse Checklist



✅ Verifique sua versão do KIO — execute kf6-config --version no terminal.

✅ Atualize o seu sistema — mantenha seu KDE Plasma sempre na versão mais recente disponível para sua distribuição.

✅ Use o terminal para cópias massivas — enquanto a correção não chega, cp -r e rsync são seus melhores amigos.

✅ Invista em um SSD rápido — a velocidade do hardware é tão importante quanto a do software.

✅ Acompanhe o blog do Méven Car — fique por dentro do andamento da correção aqui.

✅ Compartilhe esta informação — muitos usuários KDE ainda não sabem que a solução está a caminho.


Conclusão: o fim de uma era de frustração


A correção do bug 342056 é mais do que uma simples otimização. É o reconhecimento de que a experiência do usuário não pode ser sacrificada em nome de decisões arquiteturais do passado. 

Méven Car e a comunidade KDE mostraram que é possível manter a robustez do KIO para protocolos de rede sem penalizar quem só quer copiar arquivos localmente.

Daqui a alguns meses, quando essa melhoria chegar às distribuições estáveis, a frase "eu uso cp em vez do Dolphin" finalmente perderá o sentido. E isso é uma ótima notícia para todos nós que escolhemos o KDE Plasma como nosso ambiente de trabalho diário.


Nenhum comentário:

Postar um comentário