(57)【要約】【課題】ある計算機システムでアプリケーションプログラムを実行できない場合でも、その計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測する。【解決手段】ログ解析部１１４（実行ログ取得部）は、計算機システム１０１においてアプリケーション１０２を実行したアプリケーションログ１０７（実行ログ）を取得する。ログ解析部１１４（総実行時間算出部、第二実行時間算出部）は、実行ログを解析して、アプリケーション１０２を実行するのにかかった時間や特定の処理にかかった時間を算出する。新規システム性能見積部１１８（総実行時間予測部）は、計算機システム１０１においてアプリケーション１０２を実行するのにかかった時間のうち、特定の処理にかかった時間を、計算機システム１０２において特定の処理にかかる時間で置き換える。【選択図】図１
2011258058.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有し、
上記第一実行時間取得部は、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
上記実行ログ取得部は、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
上記総実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
上記第二実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする性能予測装置。
【請求項２】
上記性能予測装置は、実行時間比取得部を有し、
上記実行時間比取得部は、上記処理装置を用いて、上記第一の計算機システム及び上記第二の計算機システムにおいて実行可能な一般プログラムについて、上記第二の計算機システムにおいて上記一般プログラムを実行するのにかかる時間に対する、上記第一の計算機システムにおいて上記一般プログラムを実行するのにかかる時間の比を取得し、
上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を除く時間に、上記実行時間比取得部が取得した比を乗じることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする請求項１に記載の性能予測装置。
【請求項３】
上記第一特定プログラムは、上記第一の計算機システムにおいて動作するオペレーティングシステムのシステムコールであり、
上記第二特定プログラムは、上記第二の計算機システムにおいて動作するオペレーティングシステムのシステムコールであることを特徴とする請求項１または請求項２に記載の性能予測装置。
【請求項４】
上記第一特定プログラム及び上記第二特定プログラムが実現する特定の機能は、イベント切替処理と、排他制御処理と、同期制御処理と、ファイルアクセス処理と、グラフィック処理とのうち少なくともいずれかであることを特徴とする請求項１乃至請求項３のいずれかに記載の性能予測装置。
【請求項５】
上記一般プログラムは、ベンチマークプログラムであり、
上記実行時間比取得部は、上記第一の計算機システム及び上記第二の計算機システムにおいて上記ベンチマークプログラムを実行した結果に基づいて、上記処理装置を用いて、上記比を算出することを特徴とする請求項１乃至請求項４のいずれかに記載の性能予測装置。
【請求項６】
データを処理する処理装置を有するコンピュータが実行することにより、上記コンピュータが請求項１乃至請求項５のいずれかに記載の性能予測装置をして機能することを特徴とするコンピュータプログラム。
【請求項７】
データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有する性能予測装置が、アプリケーションプログラムの性能を予測する性能予測方法において、
上記第一実行時間取得部が、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
上記実行ログ取得部が、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
上記総実行時間算出部が、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
上記第二実行時間算出部が、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
上記総実行時間予測部が、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする性能予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、開発中の計算機システムなどで、既存のアプリケーションプログラムを実行するのにかかる時間を予測する性能予測装置に関する。
【背景技術】
【０００２】
計算機システムの性能を測定する技術として、ベンチマークテストがある。ベンチマークテストは、一般的ないくつかの処理を計算機システムに実行させて、処理にかかった時間を測定することにより、計算機システムの一般的な性能を測定する。
組み込みシステムなど、実行するアプリケーションプログラムが限られる計算機システムでは、一般的な性能よりも、そのアプリケーションプログラムを実行した場合の性能が重要である。そのアプリケーションプログラムを実行した場合の性能を測定する最も簡単な方法は、実際に計算機システムでそのアプリケーションプログラムを実行してみることである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２８６９４０号公報
【特許文献２】特開平１０−７８８９２号公報
【特許文献３】特開２０００−１２２８９８号公報
【特許文献４】特開２００４−２６４９１４号公報
【非特許文献】
【０００４】
【非特許文献１】ＥＥＭＢＣ「ＡｕｔｏＢｅｎｃｈＴＭ１．１  ｓｏｆｔｗａｒｅ  ｂｅｎｃｈｍａｒｋ  ｄａｔａ  ｂｏｏｋ」ｈｔｔｐ：／／ｗｗｗ．ｅｅｍｂｃ．ｏｒｇ／ｔｅｃｈｌｉｔ／ｄａｔａｓｈｅｅｔｓ／ａｕｔｏｂｅｎｃｈ＿ｄｂ．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
計算機システムが開発中である場合など、実際に計算機システムでアプリケーションプログラムを実行することができない場合がある。また、２つの計算機システムで、ベンチマークテストなどにより測定した一般的な性能の比率が、そのまま、そのアプリケーションプログラムを実行した場合の性能の比率にもあてはまるとは限らない。
この発明は、例えば、上記のような課題を解決するためになされたものであり、ある計算機システムでアプリケーションプログラムを実行できない場合であっても、その計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測することを目的とする。
【課題を解決するための手段】
【０００６】
この発明にかかる性能予測装置は、
データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有し、
上記第一実行時間取得部は、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
上記実行ログ取得部は、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
上記総実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
上記第二実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする。
【発明の効果】
【０００７】
この発明にかかる性能予測装置によれば、現時点では第一の計算機システムでアプリケーションプログラムを実行できない場合であっても、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における性能見積もりシステムのシステム構成図。
【図２】実施の形態１における新規システム性能見積もり処理の全体フロー図。
【図３】実施の形態１におけるアプリケーションログ１０７の一例を示す図。
【図４】実施の形態１におけるログ解析ステップ２０４のフロー図。
【図５】実施の形態１におけるイベント切り替えのマッチング処理ステップ４０４の詳細フロー図。
【図６】実施の形態１における排他制御のマッチング処理ステップ４０６の詳細フロー図。
【図７】実施の形態１におけるＳｅｍａｐｈｏｒｅ／Ｍｕｔｅｘのマッチング処理ステップ４０９の詳細フロー図。
【図８】実施の形態１における新規システム性能見積もり処理の詳細フロー図。
【図９】実施の形態３における性能予測システム８００の全体構成の一例を示すシステム構成図。
【図１０】実施の形態３における計算機システム８１０，８２０のハードウェア構成の一例を示すハードウェア構成図。
【図１１】実施の形態３における計算機システム８１０が実行するプログラムの構成の一例を示す図。
【図１２】実施の形態３における計算機システム８２０が実行するプログラムの構成の一例を示す図。
【図１３】実施の形態３における性能予測装置１００の外観の一例を示す斜視図。
【図１４】実施の形態３における性能予測装置１００のハードウェア資源の一例を示す図。
【図１５】実施の形態３における性能予測装置１００の機能ブロックの構成の一例を示すブロック構成図。
【図１６】実施の形態３における性能予測処理Ｓ６１０の流れの一例を示すフローチャート図。
【発明を実施するための形態】
【０００９】
組込み計算機システムにおいて、既存計算機システムからオペレーティングシステム（以下「ＯＳ」と呼ぶ。）やハードウェア（以下「ＨＷ」と呼ぶ。）を変更し、新規計算機システムに移行する場合、開発前に性能見積もりを行う必要がある。
計算機システムの性能見積もり方式として、組込み機器の分野によって複数のベンチマークの組み合わせを変更し、見積もり対象の組み込み機器分野の性能見積もりを行う方式がある。
また、評価システムに対し構成を自動認識し適切な評価対象プログラムを抽出し、評価対象プログラムを実行し評価を行う方式がある。
このような計算機システムの性能見積方式では、アプリケーションの特徴に併せたシステムの性能を見積もることができない。
【００１０】
以下に説明する性能予測装置は、新規・既存計算機上でＯＳ基本処理やファイルアクセスといった基本性能を測定し、既存計算機システム上にてアプリケーションログを取得し、そのログを実測値使用部と性能比使用部にわけ、実測値使用部には新規計算機上で測定した基本性能を使用し、性能比使用部にはベンチマークによって計測した新規計算機と既存計算機の性能比を使用し、新規計算機システムの性能見積もりを行う。
性能予測装置は、新規計算機システムでアプリケーションを動かすことなく、アプリケーションの特徴に合わせた新規システムの性能を見積もることができるので、開発前に詳細な新規システムの性能見積もりを行うことができる。
【００１１】
実施の形態１．
実施の形態１について、図１〜図８を用いて説明する。
【００１２】
図１は、この実施の形態における性能見積もりシステムのシステム構成図である。
【００１３】
既存の計算機システム１０１（第二の計算機システム）は、性能見積対象である既存アプリケーション１０２（アプリケーションプログラム）と、オペレーティングシステムの差異を吸収するソフトウェア層であるミドルウェア１０３と、ログ取得部１０４と、既存計算機システム上のオペレーティングシステム１０５と、既存計算機システム上のハードウェア１０６とからなる。
ログ取得部１０４（実行ログ取得部）は、ミドルウェアＡＰＩとそのミドルウェアＡＰＩ開始直後と終了直前のタイムスタンプとミドルウェアの引数を取得し、ミドルウェアがどのスレッドで実行されているかを表すスレッドＩＤを取得し、またミドルウェア内でコールされるシステムコールとそのシステムコールの開始直前と終了直後のタイムスタンプとシステムコールの引数を取得する。
アプリケーションログ１０７（実行ログ）は、既存計算機システム上で性能見積対象であるアプリケーションを実行した際にログ取得部１０４で取得できるアプリケーションログである。
【００１４】
新規あるいは既存の計算機システム１０８（第一の計算機システム）は、ＯＳ基本処理及びファイルアクセスなどの基本性能を取得する基本性能取得部１０９（第一実行時間取得部）と、新規・既存計算機上のオペレーティングシステム１１１と、新規・既存計算機上のハードウェア１１２とからなる。
計算機システム１０８における新規・既存オペレーティングシステム１１１、新規・既存ハードウェア１１２の構成は、例えば評価ボードのように基本性能を取得できるような最小限な構成でよい。
基本性能結果１１３は、新規・既存計算機上で取得した基本性能結果である。
【００１５】
ログ解析部１１４（総実行時間算出部・第二実行時間算出部）は、ログ取得部１０４で得たアプリケーションログ１０７を解析し、ログ解析結果１１５を得る。
ログ解析結果１１５は、新規・既存計算機で測定した基本性能結果１１３を使用する実測値使用部１１６と、ベンチマークによって計測した新規計算機と既存計算機の性能比を使用する性能比使用部１１７とからなる。
【００１６】
新規システム性能見積部１１８（総実行時間予測部）は、ログ解析部１１４で得たログ解析結果１１５を使用して、実測値使用部１１６には新規計算機で得た基本性能を使用し、性能比使用部１１７には既存システムの結果に新規・既存計算機の性能比を加味した結果を使用し、新規システム性能見積結果１１９を得る。
【００１７】
図２は、この実施の形態における新規システム性能見積もり処理の全体フロー図である。
新規システムの実測値使用部をＯＳ基本性能とし、ＯＳにＷｉｎｄｏｗｓ（登録商標）ＣＥを使用した際のフローを動作例として説明する。
【００１８】
ステップ２０１で、基本性能取得部１０９は、既存・新規システム上にてＯＳ基本性能を測定、ベンチマークを実行する。
ステップ２０２で、新規システム性能見積部１１８は、ベンチマーク実行結果より既存・新規性能比を算出する。
ステップ２０３で、ログ取得部１０４は、既存アプリケーションのログを取得する。
ステップ２０４で、ログ解析部１１４は、ステップ２０３で得た既存アプリケーションのログ解析を行い、ログ解析結果２０５を出力する。
ステップ２０６で、新規システム性能見積部１１８は、ログ解析結果２０５を基に新規システムの性能見積を行い、新規システム性能見積結果２０７を出力する。
【００１９】
図３は、この実施の形態におけるアプリケーションログ１０７の一例を示す図である。
ＩＤ３０１は、ログが出力されたスレッドのＩＤである。
関数名３０２は、ミドルウェアＡＰＩとシステムコールの名前であり、ミドルウェアＡＰＩの場合、Ｍｗ＿×××のようにシステムコールと区別がつく。
引数３０３は、ミドルウェアＡＰＩあるいはシステムコールの引数である。
タイムスタンプ３０４は、ログ出力時のタイムスタンプである。
【００２０】
ログを出力する場所は、ミドルウェア関数内である。ログを取得するタイミングは、ミドルウェアＡＰＩ開始直後と終了直前、システムコールの開始直前と終了直後とする。
【００２１】
図４は、この実施の形態におけるログ解析ステップ２０４のフロー図である。
ステップ４０１で、ログ解析部１１４は、ＯＳ基本処理の解析をするか判断する。ＯＳ基本処理の解析でないと判断した場合、ステップ４０２で、ログ解析部１１４は、その他の解析処理を行う。
ステップ４０１でＯＳ基本処理の解析をすると判断し、ステップ４０３でログにイベント切り替え命令がある場合、ステップ４０４で、ログ解析部１１４は、イベント切り替えのマッチング処理を行う。
ステップ４０５でログに排他制御命令がある場合、ステップ４０６で、ログ解析部１１４は、排他制御のマッチング処理を行う。
ステップ４０７でログにＳｅｍａｐｈｏｒｅ命令がある場合やステップ４０８でログにＭｕｔｅｘ命令がある場合、ステップ４０９で、ログ解析部１１４は、Ｓｅｍａｐｈｏｒｅ／Ｍｕｔｅｘのマッチング処理を行う。
ステップ４０３、ステップ４０５、ステップ４０７、ステップ４０８すべてに該当しない場合、ステップ４１０で、ログ解析部１１４は、ＯＳ基本処理で計測した箇所でないことをチェックする。
【００２２】
図５は、この実施の形態におけるイベント切り替えのマッチング処理ステップ４０４の詳細フロー図である。
ステップ５０１で、実行待ちが解除（ＳｅｔＥｖｅｎｔ）されたスレッドが直後に実行待ち（ＷａｉｔＦｏｒＳｉｎｇｌｅＯｂｊｅｃｔ）の終わりのログを出している場合、ステップ５０２で、ログ解析部１１４は、ＳｅｔＥｖｅｎｔ：ＳｔａｒｔとＷａｉｔＦｏｒＳｉｎｇｌｅＯｂｊｅｃｔ：Ｅｎｄをイベント切り替え処理処理としてチェックする。
これは、ＷａｉｔｆｏｒＳｉｎｇｌｅＯｂｊｅｃｔ命令で待ち状態に入ったスレッドが、ＳｅｔＥｖｅｎｔによって待ち状態が解除されてからスレッドが切り替わるまでの時間である。
【００２３】
ステップ５０１で、違うログがでていた場合、ログ解析部１１４は、イベント切り替えが起こらなかったと判断する。ステップ５０３で、ログ解析部１１４は、ＯＳ基本性能測定で計測した箇所でないことをチェックする。
【００２４】
図６は、この実施の形態における排他制御のマッチング処理ステップ４０６の詳細フロー図である。
「排他制御の資源確保ブロック後のスレッドプライオリティ反転なし」は、ログだけでＯＳ基本処理部を抽出することができないため、ＯＳ基本処理以外の部分と分離する作業が必要である。
【００２５】
ステップ６０１で資源解放前に同一資源を確保しようとし、ステップ６０２で資源確保（ＥｎｔｅｒＣｒｉｔｉｃａｌＳｅｃｔｉｏｎ）スレッドが資源開放待ちスレッドよりもプライオリティが低い場合、ステップ６０３で、ログ解析部１１４は、資源確保していたスレッドが資源開放を行ってから（ＬｅａｖｅＣｒｉｔｉｃａｌＳｅｃｔｉｏｎ：Ｓｔａｒｔ）、資源開放待ちのスレッドが資源を確保し終えるまで（ＥｎｔｅｒＣｒｉｔｉｃａｌＳｅｃｔｉｏｎ：Ｅｎｄ）をＯＳ基本性能測定で計測した箇所としてチェックする。
【００２６】
ステップ６０２で資源確保（ＥｎｔｅｒＣｒｉｔｉｃａｌＳｅｃｔｉｏｎ）スレッドが資源開放待ちスレッドよりもプライオリティが高い場合、ステップ６０４で、ログ解析部１１４は、資源開放待ちのスレッドが資源確保しようとしてから（ＥｎｔｅｒＣｒｉｔｉｃａｌＳｅｃｔｉｏｎ：Ｓｔａｒｔ）、直後のログをＯＳ基本性能測定で計測した箇所としてチェックを行う。
しかし、ステップ６０４該当部分は、ログだけではＯＳ基本性能測定で計測した箇所を抽出することができないため、ＯＳ基本処理以外の部分と分離する作業が必要である。
【００２７】
ステップ６０５で、ログ解析部１１４は、ＯＳ基本性能測定で計測した箇所とそれ以外の部分を分離する。
ステップ６０６で、ログ解析部１１４は、ステップ６０４該当における計測時間をタイムスタンプにより計算する。
ステップ６０７で、ログ解析部１１４は、ステップ６０６で取得した時間からステップ６０４で該当するＯＳ基本処理時間を差し引き、ステップ６０６で取得した時間からＯＳ基本処理以外の時間を算出する。
ステップ６０８で、ログ解析部１１４は、ステップ６０７で算出した時間をＯＳ基本性能測定で計測した箇所でないことをチェックし、ＯＳ基本性能測定で計測した箇所とその他の箇所で分けることができる。
【００２８】
ステップ６０１で、資源解放前に同一資源を確保しようとしていない場合、ステップ６０９で、ログ解析部１１４は、測定した排他制御のＯＳ基本処理が起こらなかったと判断してＯＳ基本性能測定で計測した箇所でないことをチェックする。
【００２９】
図７は、この実施の形態におけるＳｅｍａｐｈｏｒｅ／Ｍｕｔｅｘのマッチング処理ステップ４０９の詳細フロー図である。
「Ｓｅｍａｐｈｏｒｅ」あるいは「Ｍｕｔｅｘ」は、ログだけでＯＳ基本処理部を抽出することができないため、ＯＳ基本処理以外の部分と分離する作業が必要である。
【００３０】
ステップ７０１で、セマフォの開放（ＲｅｌｅａｓｅＳｅｍａｐｈｏｒｅ）を行おうとした場合、ステップ７０２で、ログ解析部１１４は、セマフォの開放を行おう（ＲｅｌｅａｓｅＳｅｍａｐｈｏｒｅ：Ｓｔａｒｔ）としてから、直後のログをＯＳ基本性能測定で計測した箇所としてチェックを行う。
ステップ７０１で、セマフォの開放ではない場合、ミューテックスの開放（ＲｅｌｅａｓｅＭｕｔｅｘ）を行おうとしているので、ステップ７０３で、ログ解析部１１４は、ミューテックスの開放を（ＲｅｌｅａｓｅＭｕｔｅｘ：Ｓｔａｒｔ）としてから、直後のログをＯＳ基本性能測定で計測した箇所としてチェックを行う。
しかし、ステップ７０２、ステップ７０３該当部分は、ログだけではＯＳ基本性能測定で計測した箇所を抽出することができないため、ＯＳ基本処理以外の部分と分離する作業が必要である。
【００３１】
ステップ７０４で、ログ解析部１１４は、ＯＳ基本性能測定で計測した箇所とそれ以外の部分を分離する。
ステップ７０５で、ログ解析部１１４は、ステップ７０２、ステップ７０３該当における計測時間をタイムスタンプにより計算する。
ステップ７０６で、ログ解析部１１４は、ステップ７０５で取得した時間からステップ７０２、ステップ７０３で該当するＯＳ基本処理時間を差し引き、ステップ７０５で取得した時間からＯＳ基本処理以外の時間を算出する。
ステップ７０７で、ログ解析部１１４は、ステップ７０６で算出した時間をＯＳ基本性能測定で計測した箇所でないことをチェックし、ＯＳ基本性能測定で計測した箇所とその他の箇所で分けることができる。
【００３２】
図８は、この実施の形態における新規システム性能見積もり処理の詳細フロー図である。
ログ解析結果２０５をもとに、ステップ８０１で基本性能測定で計測した処理部の場合、ステップ８０２で、新規システム性能見積部１１８は、マッチングした箇所を新規システム上で計測した対応基本処理性能値に置き換える。
ステップ８０１で基本性能測定で計測した処理部でない場合、ステップ８０３で、新規システム性能見積部１１８は、基本性能測定で計測した処理部でない計測時間に新規・既存性能比を加味し置き換える。
【００３３】
以上のように、新規既存計算機上で基本性能を実測し、新規・既存計算機の性能比を計算し、既存アプリケーションのログを取得し、そのログを解析し実測値使用部と性能比使用部に分け新規システムの性能見積もりをおこなうようにしているので、既存アプリケーションを新規システム上で動かすことなく既存アプリケーションの特徴にあった新規システムの性能見積もりを行うことができる。
【００３４】
以上説明した性能見積もり方式は、ＯＳやＨＷが異なる計算機システム上で既存アプリケーションを動作させたときの、アプリケーション処理性能を、動作ログを元に算出する。
【００３５】
この性能見積もり方式は、ＯＳ基本性能を測定した結果を動作ログで測定した実行時間と組み合わせることでアプリケーションの処理性能を算出する。
【００３６】
実施の形態２．
実施の形態１では、新規システム上で計測したＯＳ基本性能を実測値として使用するようにしたものであるが、ＯＳ基本性能の代わりにファイルアクセス性能やグラフィック性能を新規システム上で計測し実測値としてもよい。
【００３７】
実施の形態３．
実施の形態３について、図９〜図１６を用いて説明する。
なお、実施の形態１〜実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
【００３８】
図９は、この実施の形態における性能予測システム８００の全体構成の一例を示すシステム構成図である。
性能予測システム８００は、性能予測装置１００、２つの計算機システム８１０，８２０を有する。性能予測システム８００は、アプリケーションプログラム８３０を計算機システム８１０が実行した結果に基づいて、アプリケーションプログラム８３０を計算機システム８２０が実行した場合の結果を予測し、計算機システム８２０の性能を評価する。
【００３９】
計算機システム８１０（第二の計算機システム）は、既に稼働しているシステムであり、アプリケーションプログラム８３０を含む様々なプログラムを実行することができる。
【００４０】
これに対し、計算機システム８２０（第一の計算機システム）は、開発中のシステムであり、未完成である。アプリケーションプログラム８３０は、計算機システム８２０でも実行可能なプログラムであるが、計算機システム８２０が未完成であるため、現時点では、計算機システム８２０がアプリケーションプログラム８３０を実行することはできない。しかし、計算機システム８２０は、基本的なプログラムなど、いくつかのプログラムを実行することはできる。
例えば、計算機システム８２０は、組み込みシステムであり、制御対象となる装置に組み込まれて動作するシステムである。しかし、計算機システム８２０は、開発中のため、まだ、制御対象装置に組み込まれていない。アプリケーションプログラム８３０は、制御対象装置を制御するプログラムであるため、制御対象装置に組み込まれていない状態の計算機システム８２０では、実行することができない。
【００４１】
このような状況において、性能予測装置１００は、計算機システム８２０がアプリケーションプログラム８３０を実行するのにかかる時間を予測する。性能予測システム８００の利用者は、性能予測装置１００が予測した結果に基づいて、予測される計算機システム８２０の性能を評価し、必要があれば、計算機システム８２０の構成を変更するなどの対処をする。これにより、所望の性能を持つ計算機システム８２０を開発することができる。
【００４２】
図１０は、この実施の形態における計算機システム８１０，８２０のハードウェア構成の一例を示すハードウェア構成図である。
計算機システム８１０は、例えば、処理装置８１１と、入力装置８１２と、出力装置８１３と、記憶装置８１４とを有する。計算機システム８２０も同様である。
【００４３】
処理装置８１１は、記憶装置８１４が記憶したプログラムを実行することにより、記憶装置８１４が記憶したデータを処理し、計算機システム８１０全体を制御する。
記憶装置８１４は、処理装置８１１が実行するプログラムや処理装置８１１が処理するデータを記憶する。
入力装置８１２は、計算機システム８１０の外部から情報を入力し、処理装置８１１が処理できるデータに変換する。入力装置８１２が変換したデータは、処理装置８１１が直接処理をしてもよいし、記憶装置８１４が一時的に記憶してもよい。
出力装置８１３は、処理装置８１１が処理したデータや記憶装置８１４が記憶したデータを変換して、計算機システム８１０の外部に出力する。
【００４４】
図１１は、この実施の形態における計算機システム８１０が実行するプログラムの構成の一例を示す図である。
計算機システム８１０は、オペレーティングシステム８１５、ミドルウェア８１６、ベンチマークプログラム８１７、ログ生成プログラム８１８、アプリケーションプログラム８３０などのプログラムを実行する。これらのプログラムは、記憶装置８１４が記憶し、処理装置８１１が実行する。
【００４５】
オペレーティングシステム８１５は、計算機システム８１０のハードウェア資源を管理し、オペレーティングシステム８１５上で動作するアプリケーションプログラム８３０などのプログラムに、ハードウェア資源を割り当てる。また、オペレーティングシステム８１５は、アプリケーションプログラム８３０などのプログラムに対して、システムコールを提供する。アプリケーションプログラム８３０などのプログラムがシステムコールを呼び出すことにより、入出力処理などオペレーティングシステム８１５が有する様々な機能が提供される。
オペレーティングシステム８１５がアプリケーションプログラム８３０などのプログラムに提供する機能には、例えば、ファイルアクセス機能がある。ファイルアクセス機能は、記憶装置８１４などが記憶したファイルに対して、オープン、クローズ、読み出し、書き込みなどの操作をする機能である。
また、オペレーティングシステム８１５がアプリケーションプログラム８３０などのプログラムに提供する機能には、例えば、イベント切替機能、排他制御機能、同期制御機能などがある。イベント切替機能は、入出力処理の完了などのイベントを待って待機しているスレッドがあり、そのスレッドが待っていたイベントが発生した場合に、実行中のスレッドの優先度と待機中のスレッドの優先度とを比較して、待機中のスレッドの優先度のほうが高ければ、実行中のスレッドを待機状態に切り替え、待機中のスレッドの実行を再開する機能である。排他制御機能は、複数のスレッドが一つのデータを更新することによる不整合の発生を防ぐため、あるスレッドがデータを更新しているときに、他のスレッドがそのデータを更新しようした場合に、データの更新が終わるまで他のスレッドを待機させる機能である。同期制御機能は、複数のスレッドを協調動作させるため、あるスレッドが更新したデータを利用する他のスレッドを、データの更新が終わるまで待機させる機能である。
【００４６】
ミドルウェア８１６は、オペレーティングシステム８１５の機能を拡張して、汎用的な機能をアプリケーションプログラム８３０などのプログラムに提供するプログラムである。ミドルウェア８１６がアプリケーションプログラム８３０などのプログラムに提供する機能には、例えば、データベース管理機能など、より高度な処理を実現するための機能や、拡張ファイルアクセス機能、グラフィック機能、ネットワーク機能など、オペレーティングシステム８１５の機能を補完する機能などがある。
【００４７】
アプリケーションプログラム８３０は、所定の処理をするプログラムである。アプリケーションプログラム８３０は、オペレーティングシステム８１５やミドルウェア８１６が提供する機能を呼び出して利用する。
【００４８】
ベンチマークプログラム８１７は、計算機システム８１０の性能を測定するプログラムである。ベンチマークプログラム８１７は、所定の計算を実行するのにかかった時間を測定し、処理装置８１１の処理速度を測定する。また、ベンチマークプログラム８１７は、オペレーティングシステム８１５やミドルウェア８１６が提供する機能を呼び出して、処理にかかった時間を測定し、オペレーティングシステム８１５やミドルウェア８１６の処理速度を測定する。
【００４９】
ログ生成プログラム８１８は、オペレーティングシステム８１５やミドルウェア８１６が提供する機能の呼出しや、呼び出された機能の処理の終了などのイベントの発生を記録するプログラムである。ログ生成プログラム８１８は、イベントの発生時刻、内容などを記録した実行ログを生成する。
【００５０】
図１２は、この実施の形態における計算機システム８２０が実行するプログラムの構成の一例を示す図である。
計算機システム８２０は、オペレーティングシステム８２５、ミドルウェア８２６、ベンチマークプログラム８２７などのプログラムを実行する。これらのプログラムは、記憶装置８１４が記憶し、処理装置８１１が実行する。
オペレーティングシステム８２５は、オペレーティングシステム８１５と同様なので、詳しい説明は省略する。なお、オペレーティングシステム８２５は、オペレーティングシステム８１５と同じＯＳであってもよいし、異なるＯＳであってもよい。
ミドルウェア８２６は、ミドルウェア８１６と同様なので、詳しい説明は省略する。なお、ミドルウェア８２６は、ミドルウェア８１６と同じミドルウェアであってもよいし、同等の機能を提供する異なるミドルウェアであってもよい。
ベンチマークプログラム８２７は、ベンチマークプログラム８１７と同様なので、詳しい説明は省略する。ベンチマークプログラム８２７は、ベンチマークプログラム８１７による測定結果と対比できるよう、ベンチマークプログラム８１７が測定する項目と同じ項目について、計算機システム８２０の性能を測定する。
【００５１】
アプリケーションプログラム８３０は、コンパイルし直すなどの細かな修正が必要になる場合はあるものの、原則として、計算機システム８２０でも実行することができる。ただし、上述したように、現時点では、計算機システム８２０がアプリケーションプログラム８３０を実行することはできないものとする。
【００５２】
図１３は、この実施の形態における性能予測装置１００の外観の一例を示す斜視図である。
性能予測装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００５３】
図１４は、この実施の形態における性能予測装置１００のハードウェア資源の一例を示す図である。
性能予測装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００５４】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００５５】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、フローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５６】
また、「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００５７】
図１５は、この実施の形態における性能予測装置１００の機能ブロックの構成の一例を示すブロック構成図である。
性能予測装置１００は、第一性能取得部１２１と、第二性能取得部１２２と、実行ログ取得部１２３と、第一実行時間取得部１３１と、実行時間比取得部１３２と、総実行時間算出部１４１と、第二実行時間算出部１４２と、総実行時間予測部１５０とを有する。
【００５８】
第一性能取得部１２１は、ＣＰＵ９１１を用いて、計算機システム８２０の性能を表わす性能測定データを取得する。第一性能取得部１２１は、磁気ディスク装置９２０を用いて、取得した性能測定データを記憶する。
第一性能取得部１２１が取得する性能測定データは、計算機システム８２０がベンチマークプログラム８２７を実行することにより生成されたデータである。性能測定データは、ベンチマーク試験により測定された計算機システム８２０の性能を表わす。性能測定データには、例えば、次のようなデータが含まれる。
【００５９】
・処理装置性能データ
処理装置性能データは、計算機システム８２０の処理装置８１１の性能を表わす。処理装置性能データは、例えば、所定の計算をする試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６０】
・ファイルアクセス性能データ
ファイルアクセス性能データは、オペレーティングシステム８２５やミドルウェア８２６がファイルとして管理する計算機システム８２０の記憶装置８１４が記憶したデータに対するアクセスの性能を表わす。ファイルアクセス性能データは、例えば、ファイルの読み出しや書き込みを実行する試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６１】
・イベント切替性能データ
イベント切替性能データは、オペレーティングシステム８２５が提供するイベント切替機能の性能を表わすデータである。イベント切替性能データは、例えば、イベント切替を多発させる試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６２】
・排他制御性能データ
排他制御性能データは、オペレーティングシステム８２５が提供する排他制御機能の性能を表わすデータである。排他制御性能データは、例えば、排他制御を多発させる試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６３】
・同期制御性能データ
同期制御性能データは、オペレーティングシステム８２５が提供する同期制御機能の性能を表わすデータである。同期制御性能データは、例えば、同期制御を多発させる試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６４】
・グラフィック性能データ
グラフィック性能データは、計算機システム８２０の出力装置８１３の一つとして、画像を表示する表示装置がある場合に、オペレーティングシステム８２５やミドルウェア８２６が表示装置に所定の図形を表示する性能を表わすデータである。グラフィック性能データは、例えば、所定の図形を描画する試験プログラムを計算機システム８２０が実行するのにかかった時間を表わすデータである。
【００６５】
このように、性能測定データは、計算機システム８２０の様々な性能を測定した結果を表わすデータが含まれる。
【００６６】
第二性能取得部１２２は、ＣＰＵ９１１を用いて、計算機システム８１０の性能を表わす性能測定データを取得する。第二性能取得部１２２は、磁気ディスク装置９２０を用いて、取得した性能測定データを記憶する。
第二性能取得部１２２が取得する性能測定データは、計算機システム８１０がベンチマークプログラム８１７を実行することにより生成されたデータである。なお、第二性能取得部１２２が取得する計算機システム８１０の性能測定データの内容は、第一性能取得部１２１が取得する計算機システム８２０の性能測定データと同様なので、詳しい説明は省略する。
【００６７】
第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、第一性能取得部１２１が記憶した性能測定データに基づいて、計算機システム８２０において、特定の処理を実行するのにかかる時間を算出する。第一実行時間取得部１３１は、磁気ディスク装置９２０を用いて、算出した時間を表わすデータを記憶する。第一実行時間取得部１３１が記憶するデータを「第一実行時間データ」と呼ぶ。
特定の処理とは、例えば、イベント切替処理、排他制御処理、同期制御処理、ファイルアクセス処理、グラフィック処理などである。これらの処理は、計算機システム８２０がオペレーティングシステム８２５やミドルウェア８２６などのプログラムを実行することにより実現される。これらの処理にかかる時間は、処理装置８１１の性能などに基づいて単純に計算できるものではなく、オペレーティングシステム８２５での実装や、計算機システム８２０のハードウェアの性能など様々な要素が絡んでくる。
そこで、第一実行時間取得部１３１は、実測値に基づいて、これらの処理にかかる時間を算出する。例えば、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、性能測定データに含まれるファイルアクセス性能データに基づいて、ファイルアクセス処理にかかる時間を算出する。同様に、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、性能測定データに含まれるイベント切替性能データ、排他制御性能データ、同期制御性能データ、グラフィック性能データなどに基づいて、それぞれ、イベント切替処理、排他制御処理、同期制御処理、グラフィック処理などにかかる時間を算出する。
【００６８】
実行時間比取得部１３２は、ＣＰＵ９１１を用いて、第一性能取得部１２１が記憶した性能測定データと、第二性能取得部１２２が記憶した性能測定データとに基づいて、計算機システム８２０において一般的な処理を実行するのにかかる時間と、計算機システム８１０において同じ処理を実行するのにかかる時間との比率を算出する。実行時間比取得部１３２は、磁気ディスク装置９２０を用いて、算出した比率を表わすデータを記憶する。実行時間比取得部１３２が記憶するデータを「実行時間比データ」と呼ぶ。
一般的な処理とは、例えば、単純な計算処理などである。これらの処理は、計算機システム８１０，８２０がプログラムを実行することにより実現される。これらの処理にかかる時間は、主に処理装置８１１の性能などによって決まる。同じ処理を計算機システム８１０が実行した場合にかかる時間と、計算機システム８２０が実行した場合にかかる時間との間には、概ね比例関係があると考えられる。
【００６９】
実行ログ取得部１２３は、ＣＰＵ９１１を用いて、計算機システム８１０におけるアプリケーションプログラム８３０の実行ログを取得する。実行ログ取得部１２３は、磁気ディスク装置９２０を用いて、取得した実行ログを記憶する。
実行ログ取得部１２３が取得する実行ログは、計算機システム８１０がアプリケーションプログラム８３０を実行しているときに、計算機システム８１０がログ生成プログラム８１８を実行することにより生成したものである。
【００７０】
総実行時間算出部１４１は、ＣＰＵ９１１を用いて、実行ログ取得部１２３が記憶した実行ログに基づいて、計算機システム８１０がアプリケーションプログラム８３０を実行するのにかかった時間を算出する。総実行時間算出部１４１は、磁気ディスク装置９２０を用いて、算出した時間を表わすデータを記憶する。総実行時間算出部１４１が記憶するデータを「総実行時間データ」と呼ぶ。
【００７１】
第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、実行ログ取得部１２３が記憶した実行ログに基づいて、計算機システム８１０がアプリケーションプログラム８３０の実行中にオペレーティングシステム８２５やミドルウェア８２６の機能を呼び出すことにより、特定の処理を実行するのにかかった時間を算出する。第二実行時間算出部１４２は、磁気ディスク装置９２０を用いて、算出した時間を表わすデータを記憶する。第二実行時間算出部１４２が記憶するデータを「第二実行時間データ」と呼ぶ。
第二実行時間算出部１４２が実行時間を算出する特定の処理は、第一実行時間取得部１３１が十湖時間を算出した特定の処理と同じ処理である。
例えば、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、実行ログのなかから、システムコールの呼出しやミドルウェア８２６の呼出しなど、特定の処理の開始を示すログを探して、特定の処理の開始時刻を取得する。第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、実行ログのなかから、呼び出されたシステムコールやミドルウェア８２６の処理の終了など、その特定の処理の終了を示すログを探して、その特定の処理の終了時刻を取得する。第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、取得した開始時刻から終了時刻までの経過時間を算出して、その特定の処理の実行にかかった時間を求める。
第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、計算機システム８１０がアプリケーションプログラム８３０の実行中に実行したすべての特定の処理について、それぞれの実行時間を算出する。同じ特定の処理を複数回実行した場合、第二実行時間算出部１４２は、各回の実行について、それぞれの実行時間を算出する。
【００７２】
総実行時間予測部１５０は、ＣＰＵ９１１を用いて、計算機システム８２０がアプリケーションプログラム８３０を実行するのにかかる時間を予測する。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、第一実行時間取得部１３１が記憶した第一実行時間データと、実行時間比取得部１３２が記憶した実行時間比データと、総実行時間算出部１４１が記憶した総実行時間データと、第二実行時間算出部１４２が記憶した第二実行時間データとに基づいて、予測時間を算出する。総実行時間予測部１５０は、磁気ディスク装置９２０を用いて、算出した予測時間を表わすデータを記憶する。総実行時間予測部１５０が記憶したデータを「総実行時間予測データ」と呼ぶ。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、記憶した総実行時間予測データを出力する。
【００７３】
例えば、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、第二実行時間データが表わす実行時間を合計して、計算機システム８１０がアプリケーションプログラム８３０の実行中に実行した特定の処理の実行時間の総合計時間を算出する。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、算出した特定の処理の実行時間の総合計時間を、総実行時間データが表わす実行時間から差し引いた差を算出して、計算機システム８１０がアプリケーションプログラム８３０の実行中に実行した特定の処理以外の一般的な処理の実行時間の総合計時間を算出する。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、算出した一般的な処理の実行時間の総合計時間に、実行時間比データが表わす比率を乗じた積を算出して、計算機システム８２０がアプリケーションプログラム８３０の実行中に実行する一般的な処理の実行時間の総合計時間を予測する。
総実行時間予測部１５０は、ＣＰＵ９１１を用いて、第二実行時間データが表わす特定の処理それぞれの実行時間を、第一実行時間データが表わす同じ特定の処理それぞれの実行時間で置き換える。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、置き換えた実行時間を合計して、計算機システム８２０がアプリケーションプログラム８３０の実行中に実行する特定の処理の実行時間の総合計時間を予測する。
総実行時間予測部１５０は、ＣＰＵ９１１を用いて、予測した一般的な処理の実行時間の総合計時間と、予測した特定の処理の実行時間の総合計時間とを合計して、計算機システム８２０がアプリケーションプログラム８３０を実行するのにかかる時間を予測する。
【００７４】
図１６は、この実施の形態における性能予測処理Ｓ６１０の流れの一例を示すフローチャート図である。
性能予測処理Ｓ６１０において、性能予測装置１００は、アプリケーションプログラム８３０を計算機システム８２０が実行するのにかかる時間を予測する。性能予測処理Ｓ６１０は、第一性能取得工程Ｓ６１１と、第二性能取得工程Ｓ６１２と、特定処理選択工程Ｓ６１３と、第一実行時間算出工程Ｓ６１４と、一般第一実行時間算出工程Ｓ６１５と、一般第二実行時間算出工程Ｓ６１６と、実行時間比算出工程Ｓ６１７と、実行ログ取得工程Ｓ６２１と、初期化工程Ｓ６２２と、ログ選択工程Ｓ６２３と、処理種別分岐工程Ｓ６２４と、経過時間算出工程Ｓ６２５と、第二実行時間加算工程Ｓ６２６と、予測実行時間加算工程Ｓ６２７と、処理種別判定工程Ｓ６２８と、総実行時間算出工程Ｓ６３１と、一般実行時間算出工程Ｓ６３２と、一般実行時間予測工程Ｓ６３３と、予測実行時間算出工程Ｓ６３４とを有する。性能予測装置１００は、第一性能取得工程Ｓ６１１から処理を開始する。
【００７５】
第一性能取得工程Ｓ６１１において、第一性能取得部１２１は、ＣＰＵ９１１を用いて、計算機システム８１０についての性能測定データを取得する。
第二性能取得工程Ｓ６１２において、第二性能取得部１２２は、ＣＰＵ９１１を用いて、計算機システム８２０についての性能測定データを取得する。
【００７６】
特定処理選択工程Ｓ６１３において、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、実行時間を算出すべき特定の処理のなかから、実行時間をまだ算出していない特定の処理を選択する。
すべての特定の処理について実行時間を算出済であり、実行時間をまだ算出していない特定の処理が存在しない場合、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、一般第一実行時間算出工程Ｓ６１５へ処理を進める。
実行時間をまだ算出していない特定の処理が存在する場合、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、実行時間をまだ算出していない特定の処理のなかから、特定の処理を１つ選択する。第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、第一実行時間算出工程Ｓ６１４へ処理を進める。
【００７７】
第一実行時間算出工程Ｓ６１４において、第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、第一性能取得工程Ｓ６１１で第一性能取得部１２１が取得した性能測定データに基づいて、特定処理選択工程Ｓ６１３で選択した特定の処理について、計算機システム８２０がその特定の処理を実行するのにかかる時間を算出する。
第一実行時間取得部１３１は、ＣＰＵ９１１を用いて、特定処理選択工程Ｓ６１３に処理を戻し、次の特定の処理を選択する。
【００７８】
一般第一実行時間算出工程Ｓ６１５において、実行時間比取得部１３２は、ＣＰＵ９１１を用いて、第一性能取得工程Ｓ６１１で第一性能取得部１２１が取得した性能測定データに基づいて、計算機システム８２０が一般的な処理をするのにかかる時間を算出する。
一般第二実行時間算出工程Ｓ６１６において、実行時間比取得部１３２は、ＣＰＵ９１１を用いて、第二性能取得工程Ｓ６１２で第二性能取得部１２２が取得した性能測定データに基づいて、計算機システム８１０が一般的な処理をするのにかかる時間を算出する。
実行時間比算出工程Ｓ６１７において、実行時間比取得部１３２は、ＣＰＵ９１１を用いて、一般第一実行時間算出工程Ｓ６１５で算出した時間を、一般第二実行時間算出工程Ｓ６１６で算出した時間で割った商を計算して、実行時間比を算出する。
【００７９】
実行ログ取得工程Ｓ６２１において、実行ログ取得部１２３は、ＣＰＵ９１１を用いて、計算機システム８１０がアプリケーションプログラム８３０を実行したときの実行ログを取得する。
【００８０】
初期化工程Ｓ６２２において、総実行時間算出部１４１は、ＣＰＵ９１１を用いて、実行ログ取得工程Ｓ６２１で実行ログ取得部１２３が取得した実行ログを、最初から順に１行ずつ選択して、アプリケーションプログラム８３０の実行開始を表わすログを探す。総実行時間算出部１４１は、ＣＰＵ９１１を用いて、アプリケーションプログラム８３０の実行開始を表わすログから、アプリケーションプログラム８３０の実行開始時刻を取得する。
第二実行時間算出部１４２は、ＲＡＭ９１４を用いて、計算機システム８１０が実行した特定の処理の実行時間の総合計時間として、０を記憶する。第二実行時間算出部１４２は、ＲＡＭ９１４を用いて、処理の種別として、「一般的な処理」を意味するデータを記憶する。
総実行時間予測部１５０は、ＲＡＭ９１４を用いて、計算機システム８２０が実行する特定の処理の実行時間の総合計時間として、０を記憶する。
【００８１】
ログ選択工程Ｓ６２３において、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、実行ログ取得工程Ｓ６２１で実行ログ取得部１２３が取得した実行ログから、次の１行のログを選択する。
【００８２】
処理種別分岐工程Ｓ６２４において、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、記憶している処理の種別が「一般的な処理」か「特定の処理」かによって処理を分岐する。
処理の種別が「一般的な処理」の場合、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、処理種別判定工程Ｓ６２８へ処理を進める。
処理の種別が「特定の処理」の場合、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、経過時間算出工程Ｓ６２５へ処理を進める。
【００８３】
経過時間算出工程Ｓ６２５において、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、ログ選択工程Ｓ６２３で取得したログから、そのログが記録された時刻を取得する。第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、記憶している処理の開始時刻から、取得した時刻までの経過時間を算出する。
第二実行時間加算工程Ｓ６２６において、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、記憶した計算機システム８１０の特定の処理の実行時間の総合計時間に、経過時間算出工程Ｓ６２５で算出した経過時間を加算する。第二実行時間算出部１４２は、ＲＡＭ９１４を用いて、経過時間が加算された総合計時間を記憶する。
予測実行時間加算工程Ｓ６２７において、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、第二実行時間算出部１４２が記憶した処理の種別に基づいて、第一実行時間算出工程Ｓ６１４で第一実行時間取得部１３１が算出した実行時間のなかから、同じ特定の処理についての実行時間を取得する。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、記憶した計算機システム８２０の特定の処理の実行時間の総合計時間に、取得した実行時間を加算する。総実行時間予測部１５０は、ＲＡＭ９１４を用いて、実行時間が加算された総合計時間を記憶する。
【００８４】
処理種別判定工程Ｓ６２８において、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、ログ選択工程Ｓ６２３で選択したログに基づいて、そのログが記録された時刻に開始された処理の種別を判定する。
ログ選択工程Ｓ６２３で選択したログが、アプリケーションプログラム８３０の実行終了を表わすログである場合、第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、総実行時間算出工程Ｓ６３１へ処理を進める。
ログ選択工程Ｓ６２３で選択したログが、一般的な処理または特定の処理の開始を表わすログである場合、第二実行時間算出部１４２は、ＲＡＭ９１４を用いて、判定した処理の種別を記憶する。第二実行時間算出部１４２は、ＣＰＵ９１１を用いて、ログ選択工程Ｓ６２３に処理を戻し、次のログを選択する。
【００８５】
総実行時間算出工程Ｓ６３１において、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、ログ選択工程Ｓ６２３で第二実行時間算出部１４２が選択したログから、アプリケーションプログラム８３０の実行終了時刻を取得する。総実行時間予測部１５０は、ＣＰＵ９１１を用いて、初期化工程Ｓ６２２で記憶した実行開始時刻と、取得した実行終了時刻とに基づいて、アプリケーションプログラム８３０の総実行時間を算出する。
一般実行時間算出工程Ｓ６３２において、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、総実行時間算出工程Ｓ６３１で算出した総実行時間から、第二実行時間算出部１４２が記憶した特定の処理の実行時間の総合計時間を減算して、計算機システム８１０の一般的な処理の実行時間の総合計時間を算出する。
一般実行時間予測工程Ｓ６３３において、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、一般実行時間算出工程Ｓ６３２で算出した計算機システム８１０の一般的な処理の実行時間の総合計時間に、実行時間比算出工程Ｓ６１７で算出した実行時間比を乗算して、計算機システム８２０の一般的な処理の実行時間の総合計時間を算出する。
予測実行時間算出工程Ｓ６３４において、総実行時間予測部１５０は、ＣＰＵ９１１を用いて、記憶した計算機システム８２０の特定の処理の実行時間の総合計時間と、一般実行時間予測工程Ｓ６３３で算出した計算機システム８２０の一般的な処理の実行時間の総合計時間とを加算して、計算機システム８２０がアプリケーションプログラム８３０を実行するのにかかる時間を算出する。
【００８６】
以上、各実施の形態で説明した構成は、一例であり、異なる実施の形態で説明した構成を組み合わせた構成としてもよい。また、主要でない部分の構成を既存の技術など他の構成と置き換えるなどの変形をした構成としてもよい。
【００８７】
以上説明した性能予測装置（１００）は、データを処理する処理装置（ＣＰＵ９１１）と、第一実行時間取得部（１３１；新規システム性能見積部１１８）と、実行ログ取得部（１２３；ログ解析部１１４）と、総実行時間算出部（１４１；１１４）と、第二実行時間算出部（１４２；１１４）と、総実行時間予測部（１５０；１１８）とを有する。
上記第一実行時間取得部（１３１；１１８）は、上記処理装置（９１１）を用いて、第一の計算機システム（８２０；１０８）において特定の機能を実現する第一特定プログラム（オペレーティングシステム８２５，１１１；ミドルウェア８２６）について、上記第一特定プログラムを実行するのにかかる時間を取得する。
上記実行ログ取得部（１２３；１１４）は、上記処理装置（９１１）を用いて、上記第一の計算機システム（８２０；１０８）及び第二の計算機システム（８１０；１０１）において実行可能なアプリケーションプログラム（８３０；アプリケーション１０２）について、上記第二の計算機システム（８１０；１０１）において上記アプリケーションプログラム（８３０；１０２）を実行した実行ログ（アプリケーションログ１０７）を取得する。
上記総実行時間算出部（１４１；１１４）は、上記処理装置（９１１）を用いて、上記実行ログ取得部（１２３；１１４）が取得した実行ログ（１０７）を解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出する。
上記第二実行時間算出部（１４２；１１４）は、上記処理装置（９１１）を用いて、上記実行ログ取得部（１２３；１１４）が取得した実行ログ（１０７）を解析して、上記第一の計算機システム（８２０；１０８）において上記第一特定プログラム（８２５，１１１；８２６）が実現する特定の機能を上記第二の計算機システム（８１０；１０１）において実現する第二特定プログラム（オペレーティングシステム８１５，１０５；８１６，１０３）について、上記アプリケーションプログラム（８３０；１０２）が上記第二特定プログラム（８１５，１０５；８１６，１０３）を呼び出したとき、上記第二特定プログラム（８１５，１０５；８１６，１０３）を実行するのにかかった時間を算出する。
上記総実行時間予測部（１５０；１１８）は、上記処理装置（９１１）を用いて、上記総実行時間算出部（１４１；１１４）が算出した時間のうち、上記第二実行時間算出部（１４２；１１４）が算出した時間を上記第一実行時間取得部（１３１；１１８）が取得した時間で置き換えることにより、上記第一の計算機システム（８２０；１０８）において上記アプリケーションプログラム（８３０）を実行するのにかかる時間を予測する。
【００８８】
これにより、現時点では第一の計算機システムでアプリケーションプログラムを実行できない場合であっても、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
【００８９】
上記性能予測装置（１００）は、実行時間比取得部（１３２；１１８）を有する。
上記実行時間比取得部（１３２；１１８）は、上記処理装置（９１１）を用いて、上記第一の計算機システム（８２０；１０８）及び上記第二の計算機システム（８１０；１０１）において実行可能な一般プログラム（ベンチマークプログラム８１７，８２７）について、上記第二の計算機システム（８１０；１０１）において上記一般プログラム（８１７，８２７）を実行するのにかかる時間に対する、上記第一の計算機システム（８２０；１０８）において上記一般プログラム（８１７，８２７）を実行するのにかかる時間の比を取得する。
上記総実行時間予測部（１５０；１１８）は、上記処理装置（９１１）を用いて、上記総実行時間算出部（１４１；１１４）が算出した時間のうち、上記第二実行時間算出部（１４２；１１４）が算出した時間を除く時間に、上記実行時間比取得部（１３２；１１８）が取得した比を乗じることにより、上記第一の計算機システム（８２０；１０８）において上記アプリケーションプログラムを実行するのにかかる時間を予測する。
【００９０】
これにより、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を更に正確に予測できる。
【００９１】
上記第一特定プログラムは、上記第一の計算機システム（８２０；１０８）において動作するオペレーティングシステム（８２５；１１１）のシステムコールである。
上記第二特定プログラムは、上記第二の計算機システム（８１０；１０１）において動作するオペレーティングシステム（８１５；１０５）のシステムコールである。
【００９２】
システムコールの処理にかかる時間は、様々な要因で決まるため、単純な比例関係で換算することはできない。システムコールの処理にかかる時間を、実際に測定した時間で置き換えるので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
【００９３】
上記第一特定プログラム及び上記第二特定プログラムが実現する特定の機能は、イベント切替処理と、排他制御処理と、同期制御処理と、ファイルアクセス処理と、グラフィック処理とのうち少なくともいずれかである。
【００９４】
これらの処理にかかる時間も、様々な要因で決まるため、単純な比例関係で換算することはできない。これらの処理にかかる時間を、実際に測定した時間で置き換えるので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
【００９５】
上記一般プログラムは、ベンチマークプログラム（８１７，８２７）である。
上記実行時間比取得部（１３２；１１８）は、上記第一の計算機システム（８２０；１０８）及び上記第二の計算機システム（８１０；１０１）において上記ベンチマークプログラム（８１７，８２７）を実行した結果に基づいて、上記処理装置（９１１）を用いて、上記比を算出する。
【００９６】
ベンチマークプログラムによって測定した結果に基づいて、第一の計算機システムの第二の計算機システムに対する実行速度の比を算出するので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
【００９７】
以上説明した性能予測装置（１００）は、コンピュータが実行することにより、コンピュータを性能予測装置をして機能させるコンピュータプログラムにより実現することができる。
【符号の説明】
【００９８】
１００  性能予測装置、１０１，１０８  計算機システム、１０２  アプリケーション、１０３  ミドルウェア、１０４  ログ取得部、１０５，１１１  オペレーティングシステム、１０６，１１２  ハードウェア、１０７  アプリケーションログ、１０９  基本性能取得部、１１３  基本性能結果、１１４  ログ解析部、１１５，２０５  ログ解析結果、１１６  実測値使用部、１１７  性能比使用部、１１８  新規システム性能見積部、１１９，２０７  新規システム性能見積結果、１２１  第一性能取得部、１２２  第二性能取得部、１２３  実行ログ取得部、１３１  第一実行時間取得部、１３２  実行時間比取得部、１４１  総実行時間算出部、１４２  第二実行時間算出部、１５０  総実行時間予測部、３０１  ＩＤ、３０２  関数名、３０３  引数、３０４  タイムスタンプ、８００  性能予測システム、８１０，８２０  計算機システム、８１１  処理装置、８１２  入力装置、８１３  出力装置、８１４  記憶装置、８１５，８２５  オペレーティングシステム、８１６，８２６  ミドルウェア、８１７，８２７  ベンチマークプログラム、８１８  ログ生成プログラム、８３０  アプリケーションプログラム、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2011258058.tif 000003
【図２】
2011258058.tif 000004
【図３】
2011258058.tif 000005
【図４】
2011258058.tif 000006
【図５】
2011258058.tif 000007
【図６】
2011258058.tif 000008
【図７】
2011258058.tif 000009
【図８】
2011258058.tif 000010
【図９】
2011258058.tif 000011
【図１０】
2011258058.tif 000012
【図１１】
2011258058.tif 000013
【図１２】
2011258058.tif 000014
【図１３】
2011258058.tif 000015
【図１４】
2011258058.tif 000016
【図１５】
2011258058.tif 000017
【図１６】
2011258058.tif 000018