質問: x11-転送と効率 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リンクを飽和させて、まったく何の役にも立ちません。