Eu tenho um aplicativo graficamente intensivo que precisa ser encaminhado pelo X11. Passei algum tempo pesquisando o X11 e sua (in) eficiência, incluindo este ótimo post: Por que o encaminhamento do X11 é tão ineficiente? .
Uma coisa que ainda não está clara para mim é se o desempenho do encaminhamento do X11 depende do aplicativo. Fiquei com a impressão de que a tela inteira é encaminhada, não importa o que esteja acontecendo. O encaminhamento X11 deve ser independente de aplicativo.
Portanto, existe alguma informação concreta sobre o que realmente é encaminhado e se o desempenho do ssh -X depende do aplicativo?
-C
opção na linha de comando ou aCompression: yes
opção no arquivo .ssh / config. Se você estiver fazendo o encaminhamento tradicional do X de Dallas para a Austrália através de um link T1 congestionado, essa pode ser a diferença entre ter a tarefa de abrir uma caixa de diálogo com cinco níveis de profundidade na interface e marcar uma caixa de seleção de uma tarefa irreal para uma simplesmente excessiva. frustrantes duas horas. Felizmente, não tive a necessidade de tentar isso com Wayland, mas presumo que ele tenha melhorado bastante.Respostas:
Não, na verdade é o contrário. O motivo pelo qual o encaminhamento do X11 é chamado de "encaminhamento do X11" é porque ele transporta as mensagens reais do protocolo X usadas pelos aplicativos para renderizar suas janelas no "servidor X" (normalmente Xorg). Essas mensagens são comandos para criar / mover janelas, desenhar primitivas gráficas e de texto (linhas / retângulos), desenhar bitmaps etc.
Você poderia dizer que é conceitualmente o oposto de protocolos de "imagem em tela cheia", como VNC / RFB. Eu acho que é um pouco comparável ao RDP do Windows, que também foi feito para transportar comandos de desenho GDI.
Portanto, os motivos pelos quais você vê diferenças entre os programas são:
Para citar a postagem que você referenciou, originalmente a maioria dos programas baseados em X funcionavam da seguinte maneira:
Portanto, quando um programa queria mostrar um botão, ele enviava apenas alguns comandos curtos - "desenhe um retângulo", "desenhe texto" e talvez algumas linhas para torná-lo 3D.
Com o tempo, isso mudou, os programas começaram a renderizar sozinhos e muitas dessas instruções se tornaram apenas "aqui está um bitmap que eu já renderizei, coloque isso na tela" - muito rápido localmente, mas muito lento na rede devido à falta do X11 compressão de imagem.
Isso significa que os programas criados com kits de ferramentas modernos são muito mais lentos em relação ao X11 em rede, mesmo que seja algo tão básico quanto as fontes com antialias.
(Por outro lado, o RDP se adaptou ao longo do tempo e inclui várias formas de compactação de imagem, como JPEG e até H.264; você pode observar os artefatos de compactação enquanto a imagem completa está sendo carregada.)
Felizmente, a maioria dos kits de ferramentas de interface do usuário, como o GTK, implementa o rastreamento de danos, para que apenas regiões atualizadas sejam reenviadas. No entanto, alguns programas (como várias versões do Firefox / Thunderbird) não suportam isso e solicitam uma nova renderização completa de toda a janela, mesmo que ela não tenha sido realmente atualizada.
Essa é outra diferença entre os programas - os de bom comportamento ainda são bastante utilizáveis na rede, mas os de buggy podem saturar um link de 100 Mbps, sem absolutamente nada útil.
fonte