O protocolo X11 nunca foi concebido para manipular operações intensivas gráficas (em termos de bitmaps / texturas). No passado, quando o X11 foi projetado pela primeira vez, os gráficos de computador eram muito mais simples do que são hoje.
Basicamente, o X11 não envia a tela para o seu computador, mas envia as instruções de exibição para que o X-server em seu computador local possa recriar a tela em seu sistema local. E isso precisa ser feito em cada alteração / atualização da exibição.
Portanto, seu computador recebe um fluxo de instruções como "desenhe linha nesta cor das coordenadas x, y para (xx, yy), desenhe retângulo W pixels de largura, H pixels de altura com canto superior esquerdo em (x, y), etc. "
O cliente local não está realmente ciente do que precisa ser atualizado e o sistema remoto tem muito pouca informação sobre o que o cliente realmente precisa, então basicamente o servidor deve enviar muitas informações redundantes que o cliente pode ou não precisar. >
Isso é muito eficiente se a exibição a ser renderizada consistir em um número limitado de formas gráficas simples e apenas uma baixa frequência de atualização (sem animações e outras) for necessária. Qual foi o caso nos dias em que o X11 foi desenvolvido pela primeira vez.
Mas as GUIs modernas têm muitos efeitos visuais, e muito disso precisa ser enviado do sistema remoto para o seu cliente na forma de bitmaps / textures / fonts que consomem muita largura de banda. E todos os tipos de colírio incluem efeitos animados que exigem atualizações frequentes. E os monitores continuam a ficar maiores também, duas vezes mais largo / alto é 4x o número de pixels.
Claro, com o tempo, melhorias no protocolo X11 foram feitas para otimizar isso o máximo possível, mas o design subjacente básico, em essência, simplesmente não é adequado às demandas do tipo de interface gráfica que as pessoas esperam hoje.Outros protocolos (como RDP e VNC) são mais projetados para permitir que o sistema remoto faça todo o trabalho pesado e deixe que o sistema decida quais atualizações enviar ao cliente (como bitmaps compactados) da forma mais eficiente possível. Muitas vezes, isso acaba sendo mais eficiente para interfaces gráficas modernas.
Nenhum método é perfeito e pode lidar com todas as situações igualmente bem. Não existe um único protocolo de exibição que possa se dar bem sob qualquer caso de uso concebível.
Portanto, na maioria dos casos, você tenta todos os protocolos suportados entre o seu cliente local e o servidor remoto e usa aquele que oferece os melhores resultados. E, em alguns casos, não há escolha e você só precisa se contentar com o que estiver disponível.
A maioria dos protocolos permite algum ajuste de desempenho, mas muitas dessas configurações são apenas do lado do servidor e não estão disponíveis para o usuário médio. (E configurá-los corretamente é um pouco de arte arcana. Muitos administradores de sistemas não estarão dispostos a mexer com isso.)
Na maioria dos casos, a maneira mais fácil de melhorar o desempenho (às vezes de maneira bastante dramática) é alternar para um ambiente de área de trabalho mais simples, com menos brilho e sem o uso de imagens de plano de fundo.