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