Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ x11perf(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

X(7)

x11perfcomp(1)

X11PERF(1)  —  NEWS-OS Programmer’s Manual

名称

x11perf − X11 サーバ性能テストプログラム

形式

x11perf [ −option ... ]

解説

x11perf プログラムは、 一つ以上の性能テストを実行し、 X サーバがテストをどれだけ速く実行できるかを報告します。

多くのグラフィックのベンチマークプログラムは、 グラフィックデバイスが 1 つのグラフィックアプリケーションの 出力を表示するのに使われ、 端末のようなその他のデバイスでユーザが結果を得ることを仮定しています。 そのようなベンチマークはたいてい、ラインや、ポリゴンや、テキストなどの 描画速度を測定します。

ワークステーションは、 スタンドアローンのグラフィックスエンジンとしてではなく、 スーパー端末として使用されるため、 x11perf は、従来のグラフィック性能の他に、 ウィンドウ管理性能も測定します。 x11perf は、 (アプリケーションを開始するときなど) ウィンドウを生成し、マップするのに必要な時間、 (アプリケーションを非アイコン化またはメニューをポップアップするときなど) 以前からあるウィンドウをスクリーンにマップするのに必要な時間、 および、 (目的のものを見つけようとして、ウィンドウを揺らそうとしているときなど) ウィンドウの位置を移動 (リアレンジ) するのに必要な時間の、 ベンチマークを含んでいます。

x11perf は、またスタンドアローングラフィックディスプレイ 内で通常は使用されないが、X アプリケーションによって よく使用される操作に関するグラフィック性能を測定します。 そのようなオペレーションは CopyPlane (ビットマップをピクセルにマップ するために使用)、 scrolling (テキストウィンドウにて使用)、 また様々なスティプルおよびタイル (それぞれ、CAD およびカラーハーフトーン にて使用) を含みます。

x11perf はサーバの特定の強さおよび弱さを 分析するために使用されるべきであり、 サーバを分析および改善しようとする サーバライターにとって非常に有効です。 x11perf は X11 の各操作を包括的に試験するための ものです。 それは X11 アプリケーションが実際に 使用する操作の代表的なサンプルを示しているわけではありません。 ベンチマークとして使用される間、 性能テストツールとして書かれ、その目的とされます。

そのような場合、 x11perf は一つの “HeXStones”または “MeXops” 値へ測定を減少させません。 ベスト時に知ることができないナンバ およびワースト時のミスリードを考慮します。 あるアプリケーションに対して非常に速い サーバはその他に対して非常に遅くなることがあります。 全てのアプリケーションで X インプリメンテーション がどのように動作するかを特長づけるのに充分な、 一桁の数または小さなセットの数がありません。 ただし、 アプリケーションに関する知識によって、 指定された X インプリメンテーション 上での性能を予想するために、 x11perf が報告する数字を使用できます。

さまざまな x11perf の出力を比較したい場合は、 x11perfcomp(1) を使用してください。 x11perf からの結果を保持するファイルリスト を用意すると、 適切な表形式で出力させます。

繰り返される結果について、 x11perf は、新たにスタートしたサーバ 上のローカル接続を使用することで 実行されるべきです。 各トライアルが同じぐらいの時間を要するかどうかを見るため、 デフォルトコンフィグレーションは 各テストを 5 回実行します。 おかしな現象について (繰り返すことができないものがデーモン およびネットワークトラフィックに記録する場合) は試験するべきです。 ランダムな時間の差を減少させるため、 各トライアルは 5 秒間実行されます。 1 秒ごとに処理されるオブジェクトの数は 3 桁にて表示されますが、 ほとんどの UNIX システム上では、 その数が実際には 2 桁になります。 x11perf はカーソルをテストウィンドウの外に移動します。 マウスをぶつけたり、ウィンドウ内に 戻したりしないように気を付けてください。 (理由を詳しく述べられる人がいれば、その人は表彰もの !!) 

テストを実行する前に、 x11perf はサーバへのラウンドトリップタイムが どれだけなのかを決定し、 報告された最終タイミングからこの時間を除きます。 テストウィンドウからピクセルを 取り戻すことでリクエストされた 作業をサーバに実際に実行させます。 つまり、アクセラレータがめちゃくちゃに 塗っている間に、 グラフィックアクセラレータと会話しているサーバは 実行されたことにクレームをつけられないことを 意味します。

デフォルトでは、 x11perf は自動的に各テストの繰り返しの数を計算し、 スピードが異なるサーバを通しても、 それぞれがおおよそ同じ時間で実行されます。 ただし、各テストは少なくとも一回は終了しなければ なりませんので、ウィンドウの移動やリサイズなど、 また弧を描くテストなどで、 いくつかの遅いサーバは非常に長い時間を必要とします。

タイミングに関する全ての報告は、 関連する最も小さなオブジェクトに関するものです。 例えば、ラインテストでは、 一度に各行を塗るための PolyLine リクエストを使用しますが、 一秒間にサーバがどれだけ塗れるかについて報告し、 一秒間の PolyLine リクエストについては報告しません。 テキストテストは一行の文字を塗り、 一秒あたりの文字の数を報告します。 いくつかのウィンドウテストは一つの親ウィンドウを マップ、アンマップ、または移動し、 サーバがマップ、アンマップ、または移動できる 一秒あたりの子ウィンドウの数を報告します。

現在のプログラムは、ほとんど Joel McCormack 氏に起因します。 様々なサーバ間の性能差を評価しようとして、 Phil Karlton、Susan Angebranndt、Chris Kent 氏らが 開発した X11perf に基本的には起因します。 Mary Walker や Todd Newman 氏によって、 いくつかのテストが PMAX (DECStation 3100) サーバを記述したり、 調整したりするために追加されました。 世界にリリースされた一般向けに関して、 x11perf は様々なマシン間の比較を容易にするために書き直され、 最も重要な (重要でない) X の機能性をカバーし、 できる限り様々な方向性と調整でグラフィック操作を試験します。

オプション

x11perf は Xlib に基づいて単独設計され、 以下に示すオプションが使用可能です。

−display host:dpy
使用するディスプレイを指定します。

−sync 同期モードにてテストを実行します。 通常は x11perf をデバッグするために有効に使用されます。

−pack 矩形テストを行い、 各矩形をそれぞれ右側に配置させます。 これにより、点線やタイトルに関する サーバコードをデバッグすることを容易にします。 パターンが見苦しい場合には、 調整が必要です。

−repeat <n> 各テストを n 回 (デフォルトでは、各テスト 5 回実行) 繰り返します。

−time <s> 各テストを何秒間実行するかを指定します (デフォルトは 5 秒)。

−all 全てのテストを実行します。 しばらく時間がかかります。

−range <test1>[,<test2>]
指定の名称が test1 から始まり、名称 test2 で終わる全てのテストを実行します。 テスト名称は −dot から始まる オプションのどれかでなければなりません。 (例) −range line100 は 100 ピクセルラインテストからのテストを行い、最後のテストまで続けます。 −range line100,dline10 は line100 から dline10 までのテストを行います。

−labels 指定された各テストに関する記述ラベルだけを生成します。 詳細については、 x11perfcomp を参照。

−fg color 使用するフォアグラウンドカラーを指定します。

−bg color 使用するバックグラウンドカラーを指定します。

−rop <rop0 rop1 ...>
指定のラスタ ops (デフォルトは GXcopy)を使用します。 このオプションは、 実際にグラフィック関数が使用される グラフィックベンチマークに影響を与えます。

−pm <pm0 pm1 ...>
指定のプレーンマスクを使用します (デフォルトは ~0)。 このオプションは、 実際にプレーンマスクが使用される グラフィク基準に影響を与えます。

−depth <depth>
ピクセルごとの <depth> プレーンの ビジュアルを使用します (デフォルトはデフォルト ビジュアル)。

−dot ドット

−rect1 1x1 ベタ塗り矩形

−rect10 10x10 ベタ塗り矩形

−rect100 100x100 ベタ塗り矩形

−rect500 500x500 ベタ塗り矩形

−srect1 1x1 点線矩形、8x8 点線パターン

−srect10 10x10 点線矩形、8x8 点線パターン

−srect100 100x100 点線矩形、8x8 点線パターン

−srect500 500x500 点線矩形、8x8 点線パターン

−osrect1 1x1 不透明点線矩形、8x8 点線パターン

−osrect10 10x10 不透明点線矩形、8x8 点線パターン

−osrect100 100x100 不透明点線矩形、8x8 点線パターン

−osrect500 500x500 不透明点線矩形、8x8 点線パターン

−tilerect1 1x1 タイル張り矩形、4x4 タイルパターン

−tilerect10 10x10 タイル張り矩形、4x4 タイルパターン

−tilerect100 100x100 タイル張り矩形、4x4 タイルパターン

−tilerect500 500x500 タイル張り矩形、4x4 タイルパターン

−bigsrect1 1x1 点線矩形、161x145 点線パターン

−bigsrect10 10x10 点線矩形、161x145 点線パターン

−bigsrect100 100x100 点線矩形、161x145 点線パターン

−bigsrect500 500x500 点線矩形、161x145 点線パターン

−bigosrect1 1x1 不透明点線矩形、161x145 点線パターン

−bigosrect10 10x10 不透明点線矩形、161x145 点線パターン

−bigosrect100
100x100 不透明点線矩形、161x145 点線パターン

−bigosrect500
500x500 不透明点線矩形、161x145 点線パターン

−bigtilerect1 1x1 タイル張り矩形、161x145 タイルパターン

−bigtilerect10
10x10 タイル張り矩形、161x145 タイルパターン

−bigtilerect100
100x100 タイル張り矩形、161x145 タイルパターン

−bigtilerect500
500x500 タイル張り矩形、161x145 タイルパターン

−eschertilerect1
1x1 タイル張り矩形、215x208 タイルパターン

−eschertilerect10
10x10 タイル張り矩形、215x208 タイルパターン

−eschertilerect100
100x100 タイル張り矩形、215x208 タイルパターン

−eschertilerect500
500x500 タイル張り矩形、215x208 タイルパターン

−seg1 1 ピクセル細線セグメント

−seg10 10 ピクセル細線セグメント

−seg100 100 ピクセル細線セグメント

−seg500 500 ピクセル細線セグメント

−seg100c1 100 ピクセル細線セグメント (一つのあいまいな矩形)

−seg100c2 100 ピクセル細線セグメント (二つのあいまいな矩形)

−seg100c3 100 ピクセル細線セグメント (三つのあいまいな矩形)

−dseg10 10 ピクセル細いダッシュセグメント (3 オン、2 オフ)

−dseg100 100 ピクセル細いダッシュセグメント (3 オン、2 オフ)

−ddseg100 100 ピクセル細いダブルダッシュセグメント (3 オン、2 オフ)

−hseg10 10 ピクセル水平細線セグメント

−hseg100 100 ピクセル水平細線セグメント

−hseg500 500 ピクセル水平細線セグメント

−vseg10 10 ピクセル垂直細線セグメント

−vseg100 100 ピクセル垂直細線セグメント

−vseg500 500 ピクセル垂直細線セグメント

−whseg10 10 ピクセルワイド水平線セグメント

−whseg100 100 ピクセルワイド水平線セグメント

−whseg500 500 ピクセルワイド水平線セグメント

−wvseg10 10 ピクセルワイド垂直線セグメント

−wvseg100 100 ピクセルワイド垂直線セグメント

−wvseg500 500 ピクセルワイド垂直線セグメント

−line1 1 ピクセル細線(幅 0)

−line10 10 ピクセル細線

−line100 100 ピクセル細線

−line500 500 ピクセル細線

−dline10 10 ピクセル細線ダッシュ (3 オン、2 オフ)

−dline100 100 ピクセル細線ダッシュ (3 オン、2 オフ)

−ddline100 100 ピクセル細線ダブルダッシュ (3 オン、2 オフ)

−wline10 10 ピクセル線、線幅 1

−wline100 100 ピクセル線、線幅 10

−wline500 500 ピクセル線、線幅 50

−wdline100 100 ピクセルダッシュ線、線幅 10 (30 オン、20 オフ)

−wddline100 100 ピクセルダブルダッシュ線、線幅 10 (30 フォアグラウンド、20 バックグラウンド)

−orect10 10x10 細線矩形枠

−orect100 100 ピクセル垂直細線セグメント

−orect500 500 ピクセル垂直細線セグメント

−worect10 10x10 ワイド矩形枠

−worect100 100 ピクセル垂直ワイド線セグメント

−worect500 500 ピクセル垂直ワイド線セグメント

−circle1 1 ピクセル直径細線円 (線幅 0)

−circle10 10 ピクセル直径細線円

−circle100 100 ピクセル直径細線円

−circle500 500 ピクセル直径細線円

−dcircle100 100 ピクセル直径細線ダッシュ円 (3 オン、2 オフ)

−ddcircle100 100 ピクセル直径細線ダブルダッシュ円 (3 オン、2 オフ)

−wcircle10 10 ピクセル直径円、線幅 1

−wcircle100 100 ピクセル直径円、線幅 10

−wcircle500 500 ピクセル直径円、線幅 50

−wdcircle100 100 ピクセル直径ダッシュ円、線幅 10 (30 オン、20 オフ)

−wddcircle100
100 ピクセル直径ダブルダッシュ円、線幅 10 (30 フォアグラウンド、20 バックグラウンド)

−pcircle10 10 ピクセル直径細線半円、方位および弧の角度共に円の半分

−pcircle100 100 ピクセル直径細線の部分円

−wpcircle10 10 ピクセル直径ワイド部分円

−wpcircle100 100 ピクセル直径ワイド部分円

−fcircle1 1 ピクセル直径ベタ塗り円

−fcircle10 10 ピクセル直径ベタ塗り円

−fcircle100 100 ピクセル直径ベタ塗り円

−fcircle500 500 ピクセル直径ベタ塗り円

−fcpcircle10 10 ピクセル長の直径のベタ塗り部分円、弦あり、方位および弧の角度共に円の半分

−fcpcircle100 100 ピクセル長の直径のベタ塗り部分円、弦あり

−fspcircle10 10 ピクセル長の直径の部分円、扇形、方位および弧の角度共に均等

−fspcircle100 100 ピクセル長の直径のベタ塗り部分円、扇形

−ellipse10 10 ピクセル長の直径の細線 (線幅 0) 楕円、主軸および副軸ともにサイズ均等

−ellipse100 100 ピクセル長の直径の細い楕円

−ellipse500 500 ピクセル長の直径の細い楕円

−dellipse100 100 ピクセル長の直径の細線ダッシュ楕円 (3 オン、2 オフ)

−ddellipse100
100 ピクセル長の直径の細線ダブルダッシュ楕円 (3 フォアグラウンド、2 バックグラウンド)

−wellipse10 10 ピクセル長の直径の楕円、線幅 1

−wellipse100 100 ピクセル長の直径の楕円、線幅 10

−wellipse500 500 ピクセル長の直径の楕円、線幅 50

−wdellipse100
100 ピクセル長の直径のダッシュ楕円、線幅 10 (30 オン、20 オフ)

−wddellipse100
100 ピクセル長の直径のダブルダッシュ楕円、線幅 10 (30 フォアグラウンド、20 バックグラウンド)

−pellipse10 10 ピクセル長の直径の細線部分楕円

−pellipse100 100 ピクセル長の直径の細線の部分楕円

−wpellipse10 10 ピクセルの直径のワイド部分楕円

−wpellipse100
100 ピクセル長の直径のワイド部分楕円

−fellipse10 10 ピクセル長の直径のベタ塗り楕円

−fellipse100 100 ピクセル長の直径のベタ塗り楕円

−fellipse500 500 ピクセル長の直径のベタ塗り楕円

−fcpellipse10 10 ピクセル長の直径のベタ塗り部分楕円、弦あり

−fcpellipse100
100 ピクセル長の直径のベタ塗り部分楕円、弦あり

−fspellipse10 10 ピクセル長の直径のベタ塗り部分楕円、扇形

−fspellipse100
100 ピクセル長の直径のベタ塗り楕円、扇形

−triangle1 ベタ塗り 1 ピクセル/辺 三角形

−triangle10 ベタ塗り 10 ピクセル/辺 三角形

−triangle100 ベタ塗り 100 ピクセル/辺 三角形

−trap10 ベタ塗り 10x10 台形

−trap100 ベタ塗り 100x100 台形

−strap10 ベタ塗り 10x10 点線台形、8x8 点線パターン

−strap100 ベタ塗り 100x100 点線台形、8x8 点線パターン

−ostrap10 ベタ塗り 10x10 不透明点線台形、8x8 点線パターン

−ostrap100 ベタ塗り 100x100 不透明点線台形、8x8 点線パターン

−tiletrap10 ベタ塗り 0x10 タイル張り台形、4x4 タイル張りパターン

−tiletrap100 ベタ塗り 100x100 タイル張り台形、4x4 タイル張りパターン

−bigstrap10 ベタ塗り 10x10 透明点線台形、161x145 点線パターン

−bigstrap100 100x100 透明点線台形、161x145 点線パターン

−bigostrap10 10x10 不透明点線台形、161x145 点線パターン

−bigostrap100
100x100 不透明点線台形、161x145 点線パターン

−bigtiletrap10
10x10 タイル張り台形、161x145 タイルパターン

−bigtiletrap100
100x100 タイル張り台形、161x145 タイルパターン

−eschertiletrap10
10x10 タイル張り台形、216x208 タイルパターン

−eschertiletrap100
100x100 タイル張り台形、216x208 タイルパターン

−complex10 10 ピクセル/辺 多角形

−complex100 100 ピクセル/辺 多角形

−ftext 80 キャラクタ行での (6x13) 文字

−f8text 70 キャラクタ行での (8x13) 文字

−f9text 60 キャラクタ行での (9x15) 文字

−f14text16 40 キャラクタ行 (k14) での 2 バイト文字

−tr10text 80 キャラクタ行 (Times-Roman 10) での文字

−tr24text 30 キャラクタ行 (Times-Roman 24) での文字

−polytext 20/40/20 行 (6x13、Times-Roman 10、6x13) での文字

−fitext 80 キャラクタイメージ行 (6x13) での文字

−f8itext 70 キャラクタイメージ行 (8x13) での文字

−f9itext 60 キャラクタイメージ行 (9x15) での文字

−f14itext16 40 キャラクタイメージ行 (k14) での 2 バイト文字

−tr10itext 80 キャラクタイメージ行 (Times-Roman 10) での文字

−tr24itext 30 キャラクタイメージ行 (Times-Roman 24) での文字

−scroll10 垂直方向に 10x10 ピクセル分スクロール

−scroll100 垂直方向に 100x100 ピクセル分スクロール

−scroll500 垂直方向に 500x500 ピクセル分スクロール

−copywinwin10
ウィンドウ間で 10x10 の四角形をコピー

−copywinwin100
ウィンドウ間で 100x100 の四角形をコピー

−copywinwin500
ウィンンドウ間で 500x500 の四角形をコピー

−copypixwin10
ピックスマップからウィンドウへ 10x10 四角形をコピー

−copypixwin100
ピックスマップからウィンドウへ 100x100 四角形をコピー

−copypixwin500
ピックスマップからウィンドウへ 500x500 四角形をコピー

−copywinpix10
ウィンドウからピックスマップへ 10x10 四角形をコピー

−copywinpix100
ウィンドウからピックスマップへ 100x100 四角形をコピー

−copywinpix500
ウィンドウからピックスマップへ 500x500 四角形をコピー

−copypixpix10
ピックスマップからピックスマップへ 10x10 四角形をコピー

−copypixpix100
ピックスマップからピックスマップへ 100x100 四角形をコピー

−copypixpix500
ピックスマップからピックスマップへ 500x500 四角形をコピー

−copyplane10
10x10 で 1 ビットの平面をコピー

−copyplane100
100x100 で 1 ビットの平面をコピー

−copyplane500
500x500 で 1 ビットの平面をコピー

−putimage10 プットイメージ 10x10 四角形

−putimage100
プットイメージ 100x100 四角形

−putimage500
プットイメージ 500x500 四角形

−shmput10 プットイメージ 10x10 四角形、MIT の共有メモリ拡張

−shmput100 プットイメージ 100x100 四角形、MIT の共有メモリ拡張

−shmput500 プットイメージ 500x500 四角形、MIT の共有メモリ拡張

−getimage10 ゲットイメージ 10x10 四角形

−getimage100
ゲットイメージ 100x100 四角形

−getimage500
ゲットイメージ 500x500 四角形

−noop X プロトコル動作無し

−atom Atom 名の獲得

−prop プロパティ獲得

−gc グラフィックコンテキストを変更します。

−create MapSubwindows を使用して、子ウィンドウおよびマップを生成します。

−ucreate マップされてないウィンドウを生成します。

−map 親ウィンドウ上の MapWindow を経由して、子ウィンドウをマップします。

−unmap 親ウィンドウ上の UnmapWindow を経由して、子ウィンドウをアンマップします。

−destroy DestroyWindow 親を経由して、子ウィンドウを破壊します。

−popup Map/Unmap ポップアップウィンドウを経由して、ウィンドウを表出または隠します。

−move ウィンドウを移動します。

−umove アンマップされたウィンドウを移動します。

−movetree 親ウィンドウ上の MoveWindow を経由して、ウィンドウを移動します。

−resize ウィンドウのサイズを変更します。

−uresize アンマップされたウィンドウのサイズを変更します。

−circulate 最深部のウィンドウを最前面に移動します。

−ucirculate アンマップされたウィンドウを最前面に移動します。

X デフォルト

このプログラムで使用する X デフォルトはありません。

関連事項

X(7), x11perfcomp(1)

著作権

Copyright 1988, 1989 Digital Equipment Corporation. 
その他権利および許可事項については、 X(7) を参照。

著者

Joel McCormack
Phil Karlton
Susan Angebranndt
Chris Kent

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026