付録L.2 ライブラリ(API)の性能調査
(1) ライブラリ(API)のトレースの見方
APIのトレースを次の図に示します。
|
|
APIの処理時間を求めるには,処理開始を表す「enter」と,処理終了を表す「exit」の時刻の差分を取ります。複数スレッドのトレースが混ざって出力されるため,同一スレッドの「enter」と「exit」を対応づけるように注意してください。「pid」と「tid」が一致する行が同一のスレッドです。図では2つのスレッドにそれぞれ黄色と緑色を付けて色分けしています。
<API名>は,業務アプリケーションが実行するAPI名で,マニュアル「uCosminexus Service Coordinator Interactive Workflow AP開発ガイド」に記載しているAPI名のことです。
次のAPIのトレースの例を説明します。
-
案件投入API
-
作業完了API
-
作業一覧取得API
(2) 案件投入APIの処理時間を求める
案件投入APIのトレースの例を次の図に示します。
|
|
案件投入APIの名称は「CIWServer#createAndStartProcessInstance()」です。同一スレッドの「enter」と「exit」の対応づけについては,「(1) ライブラリ(API)のトレースの見方」を参照してください。
図では案件投入APIの処理時間は87ミリ秒です。また,付加情報として,API引数(ビジネスプロセス定義名など)や案件ID(採番されたID)が出力されるため,ビジネスプロセス定義ごとに処理時間を集計したり,特定の案件の処理時間を調べたりできます。
(3) 作業完了APIの処理時間を求める
作業完了APIのトレースの例を次の図に示します。
|
|
作業完了APIの名称は「CIWWorkItem#performAndComplete()」または「CIWWorkItem#complete()」です。同一スレッドの「enter」と「exit」の対応づけについては,「(1) ライブラリ(API)のトレースの見方」を参照してください。
図では作業完了APIの処理時間は23ミリ秒です。また,付加情報として,処理対象の作業(案件IDと作業ID)が出力されるため,特定の作業の処理時間を調べることができます。
(4) 作業一覧取得APIの処理時間を求める
作業一覧取得APIのトレースの例を次の図に示します。
|
|
作業一覧取得APIの名称は「CIWServer#getWorkItemsList()」または「CIWProcessInstance#getWorkItemsList()」です。同一スレッドの「enter」と「exit」の対応づけについては,「(1) ライブラリ(API)のトレースの見方」を参照してください。
図では作業一覧取得APIの処理時間は12ミリ秒です。また,付加情報として,API引数(最大取得数など)が出力されるため参考情報として利用できます。