Xorg(またはすべてのXウィンドウサーバー)がXサーバーの「スタブ」を生成してアプリケーションのAPI呼び出しを受け入れてから、呼び出しを処理し、フレームバッファを更新して作成するのではなく、完全に無視するように設定はありますか?メモリ不足?グラフィックアプリケーション(Firefoxなど)を実行できる必要がありますが、グラフィック出力には大きな関心がなく、レンダリングオーバーヘッドをできるだけ減らしたいと思います。グラフィックのレンダリングによって変更されないWebページのタイミングを取得しようとしています。
または、すべてのXサーバーAPI呼び出しを「ログ」してディスクにダンプしてから、後で再度再生してグラフィックレンダリングからWebタイミングを分離しながら、アプリケーションが見ている内容のスナップショットを作成する方法はありますか? ?異なる時点のスクリーンショット?
答え1
あなたが探しているXvfb
。マニュアルから:
Xvfb is an X server that can run on machines with no display hardware and no physical input devices. It emulates a dumb framebuffer using virtual memory.
答え2
1996年にこれを行うことができるプログラムがありましたが、最近はdebianから削除されました。リクエストをフィルタリングしてX11サーバーに応答するxmon
2つの部分に分けられ、リクエストを抑制できるGUIもありました。何も描かないでください。これはまだ配布されているプログラムのフォークです(要求と応答を追跡するために使用されます)。しかし見つけるためにxmond
xmonui
xscope
源泉今日コンパイルするにはxmon
少し狂信的でなければなりません。デバッグするX11のバグがもうないので削除されたようです...
マンスモン:次の図は、xmonとxmonデーモンの関係を示しています。クライアントとサーバーも同様です。
----------
| xmonui |
----------
|
v
------------ ----------
| client 1 |<------->| |
------------ | | ----------
: | xmond |<----->| server |
: | | ----------
------------ | |
| client n |<------->| |
------------ ----------
|
v
monitor output to stdout
試してみるもう1つの最適化は、Xvfb
深さが1(モノクロ)の非常に小さな画面(64×64ピクセルなど)を作成し、Firefoxウィンドウを画面外に配置して見えないため、レンダリングされる量が多くないようにすることです。