何が起こっていても、画面全体が転送されるという印象を受けました。その場合、X11転送はアプリケーションに依存しないはずです。
いいえ、実際は逆です。X11フォワーディングが「X11フォワーディング」と呼ばれる理由は、アプリケーションがウィンドウを「Xサーバー」(通常はXorg)にレンダリングするために使用する実際のXプロトコルメッセージを転送するためです。これらのメッセージは、ウィンドウの作成/移動、テキストおよびグラフィカルプリミティブ(線/長方形)の描画、ビットマップの描画などのためのコマンドです。
概念的には、VNC / RFBなどの「フルスクリーンイメージ」プロトコルの反対だと言えます。GDI描画コマンドを転送するために作成されたWindowsのRDPにいくらか匹敵すると思います。
したがって、プログラム間に違いが見られる理由は次のとおりです。
参照した投稿を引用すると、もともとほとんどのXベースのプログラムは次のように機能していました。
基本的に、X11は画面をコンピューターに送信しませんが、表示命令を送信して、ローカルコンピューターのXサーバーがローカルシステムで画面を再作成できるようにします。
そのため、プログラムがボタンを表示したい場合、「長方形を描く」、「テキストを描く」、そしておそらく3Dに見えるようにするためのいくつかの行という短いコマンドを送信しました。
時間が経つにつれて、プログラムは自動的にレンダリングを開始し、それらの命令の多くは「ここにレンダリング済みのビットマップがあります。これを画面に表示します」-ローカルで非常に高速ですが、X11がないためネットワーク上で非常に遅くなります画像圧縮。
つまり、最新のツールキットを使用してビルドされたプログラムは、アンチエイリアスフォントと同じくらい基本的なものであっても、ネットワーク化されたX11上では非常に低速です。
(対照的に、RDPは時間の経過とともに適応しており、JPEGやH.264などのさまざまな形式の画像圧縮が含まれています。多くの場合、完全な画像の読み込み中に圧縮アーチファクトに気付くことができます。)
幸いなことに、GTKなどのほとんどのUIツールキットは損傷の追跡を実装しているため、更新された領域のみが再送信されます。ただし、いくつかのプログラム(いくつかのFirefox / Thunderbirdバージョンなど)は、これをサポートせず、実際に更新されていなくても、ウィンドウ全体の完全な再レンダリングを要求します。
それはプログラム間のもう1つの違いです。正常に動作するプログラムはネットワーク上で非常に使いやすくなっていますが、バグのあるプログラムは100 Mbpsリンクを飽和させてまったく何もしません。