[go: up one dir, main page]

JP2011258058A - 性能予測装置及びコンピュータプログラム及び性能予測方法 - Google Patents

性能予測装置及びコンピュータプログラム及び性能予測方法 Download PDF

Info

Publication number
JP2011258058A
JP2011258058A JP2010133015A JP2010133015A JP2011258058A JP 2011258058 A JP2011258058 A JP 2011258058A JP 2010133015 A JP2010133015 A JP 2010133015A JP 2010133015 A JP2010133015 A JP 2010133015A JP 2011258058 A JP2011258058 A JP 2011258058A
Authority
JP
Japan
Prior art keywords
computer system
execution time
execution
time
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010133015A
Other languages
English (en)
Inventor
Yutaka Kawaguchi
豊 川口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010133015A priority Critical patent/JP2011258058A/ja
Publication of JP2011258058A publication Critical patent/JP2011258058A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ある計算機システムでアプリケーションプログラムを実行できない場合でも、その計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測する。
【解決手段】ログ解析部114(実行ログ取得部)は、計算機システム101においてアプリケーション102を実行したアプリケーションログ107(実行ログ)を取得する。ログ解析部114(総実行時間算出部、第二実行時間算出部)は、実行ログを解析して、アプリケーション102を実行するのにかかった時間や特定の処理にかかった時間を算出する。新規システム性能見積部118(総実行時間予測部)は、計算機システム101においてアプリケーション102を実行するのにかかった時間のうち、特定の処理にかかった時間を、計算機システム102において特定の処理にかかる時間で置き換える。
【選択図】図1

Description

この発明は、開発中の計算機システムなどで、既存のアプリケーションプログラムを実行するのにかかる時間を予測する性能予測装置に関する。
計算機システムの性能を測定する技術として、ベンチマークテストがある。ベンチマークテストは、一般的ないくつかの処理を計算機システムに実行させて、処理にかかった時間を測定することにより、計算機システムの一般的な性能を測定する。
組み込みシステムなど、実行するアプリケーションプログラムが限られる計算機システムでは、一般的な性能よりも、そのアプリケーションプログラムを実行した場合の性能が重要である。そのアプリケーションプログラムを実行した場合の性能を測定する最も簡単な方法は、実際に計算機システムでそのアプリケーションプログラムを実行してみることである。
特開平8−286940号公報 特開平10−78892号公報 特開2000−122898号公報 特開2004−264914号公報
EEMBC「AutoBenchTM1.1 software benchmark data book」http://www.eembc.org/techlit/datasheets/autobench_db.pdf
計算機システムが開発中である場合など、実際に計算機システムでアプリケーションプログラムを実行することができない場合がある。また、2つの計算機システムで、ベンチマークテストなどにより測定した一般的な性能の比率が、そのまま、そのアプリケーションプログラムを実行した場合の性能の比率にもあてはまるとは限らない。
この発明は、例えば、上記のような課題を解決するためになされたものであり、ある計算機システムでアプリケーションプログラムを実行できない場合であっても、その計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測することを目的とする。
この発明にかかる性能予測装置は、
データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有し、
上記第一実行時間取得部は、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
上記実行ログ取得部は、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
上記総実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
上記第二実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする。
この発明にかかる性能予測装置によれば、現時点では第一の計算機システムでアプリケーションプログラムを実行できない場合であっても、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
実施の形態1における性能見積もりシステムのシステム構成図。 実施の形態1における新規システム性能見積もり処理の全体フロー図。 実施の形態1におけるアプリケーションログ107の一例を示す図。 実施の形態1におけるログ解析ステップ204のフロー図。 実施の形態1におけるイベント切り替えのマッチング処理ステップ404の詳細フロー図。 実施の形態1における排他制御のマッチング処理ステップ406の詳細フロー図。 実施の形態1におけるSemaphore/Mutexのマッチング処理ステップ409の詳細フロー図。 実施の形態1における新規システム性能見積もり処理の詳細フロー図。 実施の形態3における性能予測システム800の全体構成の一例を示すシステム構成図。 実施の形態3における計算機システム810,820のハードウェア構成の一例を示すハードウェア構成図。 実施の形態3における計算機システム810が実行するプログラムの構成の一例を示す図。 実施の形態3における計算機システム820が実行するプログラムの構成の一例を示す図。 実施の形態3における性能予測装置100の外観の一例を示す斜視図。 実施の形態3における性能予測装置100のハードウェア資源の一例を示す図。 実施の形態3における性能予測装置100の機能ブロックの構成の一例を示すブロック構成図。 実施の形態3における性能予測処理S610の流れの一例を示すフローチャート図。
組込み計算機システムにおいて、既存計算機システムからオペレーティングシステム(以下「OS」と呼ぶ。)やハードウェア(以下「HW」と呼ぶ。)を変更し、新規計算機システムに移行する場合、開発前に性能見積もりを行う必要がある。
計算機システムの性能見積もり方式として、組込み機器の分野によって複数のベンチマークの組み合わせを変更し、見積もり対象の組み込み機器分野の性能見積もりを行う方式がある。
また、評価システムに対し構成を自動認識し適切な評価対象プログラムを抽出し、評価対象プログラムを実行し評価を行う方式がある。
このような計算機システムの性能見積方式では、アプリケーションの特徴に併せたシステムの性能を見積もることができない。
以下に説明する性能予測装置は、新規・既存計算機上でOS基本処理やファイルアクセスといった基本性能を測定し、既存計算機システム上にてアプリケーションログを取得し、そのログを実測値使用部と性能比使用部にわけ、実測値使用部には新規計算機上で測定した基本性能を使用し、性能比使用部にはベンチマークによって計測した新規計算機と既存計算機の性能比を使用し、新規計算機システムの性能見積もりを行う。
性能予測装置は、新規計算機システムでアプリケーションを動かすことなく、アプリケーションの特徴に合わせた新規システムの性能を見積もることができるので、開発前に詳細な新規システムの性能見積もりを行うことができる。
実施の形態1.
実施の形態1について、図1〜図8を用いて説明する。
図1は、この実施の形態における性能見積もりシステムのシステム構成図である。
既存の計算機システム101(第二の計算機システム)は、性能見積対象である既存アプリケーション102(アプリケーションプログラム)と、オペレーティングシステムの差異を吸収するソフトウェア層であるミドルウェア103と、ログ取得部104と、既存計算機システム上のオペレーティングシステム105と、既存計算機システム上のハードウェア106とからなる。
ログ取得部104(実行ログ取得部)は、ミドルウェアAPIとそのミドルウェアAPI開始直後と終了直前のタイムスタンプとミドルウェアの引数を取得し、ミドルウェアがどのスレッドで実行されているかを表すスレッドIDを取得し、またミドルウェア内でコールされるシステムコールとそのシステムコールの開始直前と終了直後のタイムスタンプとシステムコールの引数を取得する。
アプリケーションログ107(実行ログ)は、既存計算機システム上で性能見積対象であるアプリケーションを実行した際にログ取得部104で取得できるアプリケーションログである。
新規あるいは既存の計算機システム108(第一の計算機システム)は、OS基本処理及びファイルアクセスなどの基本性能を取得する基本性能取得部109(第一実行時間取得部)と、新規・既存計算機上のオペレーティングシステム111と、新規・既存計算機上のハードウェア112とからなる。
計算機システム108における新規・既存オペレーティングシステム111、新規・既存ハードウェア112の構成は、例えば評価ボードのように基本性能を取得できるような最小限な構成でよい。
基本性能結果113は、新規・既存計算機上で取得した基本性能結果である。
ログ解析部114(総実行時間算出部・第二実行時間算出部)は、ログ取得部104で得たアプリケーションログ107を解析し、ログ解析結果115を得る。
ログ解析結果115は、新規・既存計算機で測定した基本性能結果113を使用する実測値使用部116と、ベンチマークによって計測した新規計算機と既存計算機の性能比を使用する性能比使用部117とからなる。
新規システム性能見積部118(総実行時間予測部)は、ログ解析部114で得たログ解析結果115を使用して、実測値使用部116には新規計算機で得た基本性能を使用し、性能比使用部117には既存システムの結果に新規・既存計算機の性能比を加味した結果を使用し、新規システム性能見積結果119を得る。
図2は、この実施の形態における新規システム性能見積もり処理の全体フロー図である。
新規システムの実測値使用部をOS基本性能とし、OSにWindows(登録商標)CEを使用した際のフローを動作例として説明する。
ステップ201で、基本性能取得部109は、既存・新規システム上にてOS基本性能を測定、ベンチマークを実行する。
ステップ202で、新規システム性能見積部118は、ベンチマーク実行結果より既存・新規性能比を算出する。
ステップ203で、ログ取得部104は、既存アプリケーションのログを取得する。
ステップ204で、ログ解析部114は、ステップ203で得た既存アプリケーションのログ解析を行い、ログ解析結果205を出力する。
ステップ206で、新規システム性能見積部118は、ログ解析結果205を基に新規システムの性能見積を行い、新規システム性能見積結果207を出力する。
図3は、この実施の形態におけるアプリケーションログ107の一例を示す図である。
ID301は、ログが出力されたスレッドのIDである。
関数名302は、ミドルウェアAPIとシステムコールの名前であり、ミドルウェアAPIの場合、Mw_×××のようにシステムコールと区別がつく。
引数303は、ミドルウェアAPIあるいはシステムコールの引数である。
タイムスタンプ304は、ログ出力時のタイムスタンプである。
ログを出力する場所は、ミドルウェア関数内である。ログを取得するタイミングは、ミドルウェアAPI開始直後と終了直前、システムコールの開始直前と終了直後とする。
図4は、この実施の形態におけるログ解析ステップ204のフロー図である。
ステップ401で、ログ解析部114は、OS基本処理の解析をするか判断する。OS基本処理の解析でないと判断した場合、ステップ402で、ログ解析部114は、その他の解析処理を行う。
ステップ401でOS基本処理の解析をすると判断し、ステップ403でログにイベント切り替え命令がある場合、ステップ404で、ログ解析部114は、イベント切り替えのマッチング処理を行う。
ステップ405でログに排他制御命令がある場合、ステップ406で、ログ解析部114は、排他制御のマッチング処理を行う。
ステップ407でログにSemaphore命令がある場合やステップ408でログにMutex命令がある場合、ステップ409で、ログ解析部114は、Semaphore/Mutexのマッチング処理を行う。
ステップ403、ステップ405、ステップ407、ステップ408すべてに該当しない場合、ステップ410で、ログ解析部114は、OS基本処理で計測した箇所でないことをチェックする。
図5は、この実施の形態におけるイベント切り替えのマッチング処理ステップ404の詳細フロー図である。
ステップ501で、実行待ちが解除(SetEvent)されたスレッドが直後に実行待ち(WaitForSingleObject)の終わりのログを出している場合、ステップ502で、ログ解析部114は、SetEvent:StartとWaitForSingleObject:Endをイベント切り替え処理処理としてチェックする。
これは、WaitforSingleObject命令で待ち状態に入ったスレッドが、SetEventによって待ち状態が解除されてからスレッドが切り替わるまでの時間である。
ステップ501で、違うログがでていた場合、ログ解析部114は、イベント切り替えが起こらなかったと判断する。ステップ503で、ログ解析部114は、OS基本性能測定で計測した箇所でないことをチェックする。
図6は、この実施の形態における排他制御のマッチング処理ステップ406の詳細フロー図である。
「排他制御の資源確保ブロック後のスレッドプライオリティ反転なし」は、ログだけでOS基本処理部を抽出することができないため、OS基本処理以外の部分と分離する作業が必要である。
ステップ601で資源解放前に同一資源を確保しようとし、ステップ602で資源確保(EnterCriticalSection)スレッドが資源開放待ちスレッドよりもプライオリティが低い場合、ステップ603で、ログ解析部114は、資源確保していたスレッドが資源開放を行ってから(LeaveCriticalSection:Start)、資源開放待ちのスレッドが資源を確保し終えるまで(EnterCriticalSection:End)をOS基本性能測定で計測した箇所としてチェックする。
ステップ602で資源確保(EnterCriticalSection)スレッドが資源開放待ちスレッドよりもプライオリティが高い場合、ステップ604で、ログ解析部114は、資源開放待ちのスレッドが資源確保しようとしてから(EnterCriticalSection:Start)、直後のログをOS基本性能測定で計測した箇所としてチェックを行う。
しかし、ステップ604該当部分は、ログだけではOS基本性能測定で計測した箇所を抽出することができないため、OS基本処理以外の部分と分離する作業が必要である。
ステップ605で、ログ解析部114は、OS基本性能測定で計測した箇所とそれ以外の部分を分離する。
ステップ606で、ログ解析部114は、ステップ604該当における計測時間をタイムスタンプにより計算する。
ステップ607で、ログ解析部114は、ステップ606で取得した時間からステップ604で該当するOS基本処理時間を差し引き、ステップ606で取得した時間からOS基本処理以外の時間を算出する。
ステップ608で、ログ解析部114は、ステップ607で算出した時間をOS基本性能測定で計測した箇所でないことをチェックし、OS基本性能測定で計測した箇所とその他の箇所で分けることができる。
ステップ601で、資源解放前に同一資源を確保しようとしていない場合、ステップ609で、ログ解析部114は、測定した排他制御のOS基本処理が起こらなかったと判断してOS基本性能測定で計測した箇所でないことをチェックする。
図7は、この実施の形態におけるSemaphore/Mutexのマッチング処理ステップ409の詳細フロー図である。
「Semaphore」あるいは「Mutex」は、ログだけでOS基本処理部を抽出することができないため、OS基本処理以外の部分と分離する作業が必要である。
ステップ701で、セマフォの開放(ReleaseSemaphore)を行おうとした場合、ステップ702で、ログ解析部114は、セマフォの開放を行おう(ReleaseSemaphore:Start)としてから、直後のログをOS基本性能測定で計測した箇所としてチェックを行う。
ステップ701で、セマフォの開放ではない場合、ミューテックスの開放(ReleaseMutex)を行おうとしているので、ステップ703で、ログ解析部114は、ミューテックスの開放を(ReleaseMutex:Start)としてから、直後のログをOS基本性能測定で計測した箇所としてチェックを行う。
しかし、ステップ702、ステップ703該当部分は、ログだけではOS基本性能測定で計測した箇所を抽出することができないため、OS基本処理以外の部分と分離する作業が必要である。
ステップ704で、ログ解析部114は、OS基本性能測定で計測した箇所とそれ以外の部分を分離する。
ステップ705で、ログ解析部114は、ステップ702、ステップ703該当における計測時間をタイムスタンプにより計算する。
ステップ706で、ログ解析部114は、ステップ705で取得した時間からステップ702、ステップ703で該当するOS基本処理時間を差し引き、ステップ705で取得した時間からOS基本処理以外の時間を算出する。
ステップ707で、ログ解析部114は、ステップ706で算出した時間をOS基本性能測定で計測した箇所でないことをチェックし、OS基本性能測定で計測した箇所とその他の箇所で分けることができる。
図8は、この実施の形態における新規システム性能見積もり処理の詳細フロー図である。
ログ解析結果205をもとに、ステップ801で基本性能測定で計測した処理部の場合、ステップ802で、新規システム性能見積部118は、マッチングした箇所を新規システム上で計測した対応基本処理性能値に置き換える。
ステップ801で基本性能測定で計測した処理部でない場合、ステップ803で、新規システム性能見積部118は、基本性能測定で計測した処理部でない計測時間に新規・既存性能比を加味し置き換える。
以上のように、新規既存計算機上で基本性能を実測し、新規・既存計算機の性能比を計算し、既存アプリケーションのログを取得し、そのログを解析し実測値使用部と性能比使用部に分け新規システムの性能見積もりをおこなうようにしているので、既存アプリケーションを新規システム上で動かすことなく既存アプリケーションの特徴にあった新規システムの性能見積もりを行うことができる。
以上説明した性能見積もり方式は、OSやHWが異なる計算機システム上で既存アプリケーションを動作させたときの、アプリケーション処理性能を、動作ログを元に算出する。
この性能見積もり方式は、OS基本性能を測定した結果を動作ログで測定した実行時間と組み合わせることでアプリケーションの処理性能を算出する。
実施の形態2.
実施の形態1では、新規システム上で計測したOS基本性能を実測値として使用するようにしたものであるが、OS基本性能の代わりにファイルアクセス性能やグラフィック性能を新規システム上で計測し実測値としてもよい。
実施の形態3.
実施の形態3について、図9〜図16を用いて説明する。
なお、実施の形態1〜実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
図9は、この実施の形態における性能予測システム800の全体構成の一例を示すシステム構成図である。
性能予測システム800は、性能予測装置100、2つの計算機システム810,820を有する。性能予測システム800は、アプリケーションプログラム830を計算機システム810が実行した結果に基づいて、アプリケーションプログラム830を計算機システム820が実行した場合の結果を予測し、計算機システム820の性能を評価する。
計算機システム810(第二の計算機システム)は、既に稼働しているシステムであり、アプリケーションプログラム830を含む様々なプログラムを実行することができる。
これに対し、計算機システム820(第一の計算機システム)は、開発中のシステムであり、未完成である。アプリケーションプログラム830は、計算機システム820でも実行可能なプログラムであるが、計算機システム820が未完成であるため、現時点では、計算機システム820がアプリケーションプログラム830を実行することはできない。しかし、計算機システム820は、基本的なプログラムなど、いくつかのプログラムを実行することはできる。
例えば、計算機システム820は、組み込みシステムであり、制御対象となる装置に組み込まれて動作するシステムである。しかし、計算機システム820は、開発中のため、まだ、制御対象装置に組み込まれていない。アプリケーションプログラム830は、制御対象装置を制御するプログラムであるため、制御対象装置に組み込まれていない状態の計算機システム820では、実行することができない。
このような状況において、性能予測装置100は、計算機システム820がアプリケーションプログラム830を実行するのにかかる時間を予測する。性能予測システム800の利用者は、性能予測装置100が予測した結果に基づいて、予測される計算機システム820の性能を評価し、必要があれば、計算機システム820の構成を変更するなどの対処をする。これにより、所望の性能を持つ計算機システム820を開発することができる。
図10は、この実施の形態における計算機システム810,820のハードウェア構成の一例を示すハードウェア構成図である。
計算機システム810は、例えば、処理装置811と、入力装置812と、出力装置813と、記憶装置814とを有する。計算機システム820も同様である。
処理装置811は、記憶装置814が記憶したプログラムを実行することにより、記憶装置814が記憶したデータを処理し、計算機システム810全体を制御する。
記憶装置814は、処理装置811が実行するプログラムや処理装置811が処理するデータを記憶する。
入力装置812は、計算機システム810の外部から情報を入力し、処理装置811が処理できるデータに変換する。入力装置812が変換したデータは、処理装置811が直接処理をしてもよいし、記憶装置814が一時的に記憶してもよい。
出力装置813は、処理装置811が処理したデータや記憶装置814が記憶したデータを変換して、計算機システム810の外部に出力する。
図11は、この実施の形態における計算機システム810が実行するプログラムの構成の一例を示す図である。
計算機システム810は、オペレーティングシステム815、ミドルウェア816、ベンチマークプログラム817、ログ生成プログラム818、アプリケーションプログラム830などのプログラムを実行する。これらのプログラムは、記憶装置814が記憶し、処理装置811が実行する。
オペレーティングシステム815は、計算機システム810のハードウェア資源を管理し、オペレーティングシステム815上で動作するアプリケーションプログラム830などのプログラムに、ハードウェア資源を割り当てる。また、オペレーティングシステム815は、アプリケーションプログラム830などのプログラムに対して、システムコールを提供する。アプリケーションプログラム830などのプログラムがシステムコールを呼び出すことにより、入出力処理などオペレーティングシステム815が有する様々な機能が提供される。
オペレーティングシステム815がアプリケーションプログラム830などのプログラムに提供する機能には、例えば、ファイルアクセス機能がある。ファイルアクセス機能は、記憶装置814などが記憶したファイルに対して、オープン、クローズ、読み出し、書き込みなどの操作をする機能である。
また、オペレーティングシステム815がアプリケーションプログラム830などのプログラムに提供する機能には、例えば、イベント切替機能、排他制御機能、同期制御機能などがある。イベント切替機能は、入出力処理の完了などのイベントを待って待機しているスレッドがあり、そのスレッドが待っていたイベントが発生した場合に、実行中のスレッドの優先度と待機中のスレッドの優先度とを比較して、待機中のスレッドの優先度のほうが高ければ、実行中のスレッドを待機状態に切り替え、待機中のスレッドの実行を再開する機能である。排他制御機能は、複数のスレッドが一つのデータを更新することによる不整合の発生を防ぐため、あるスレッドがデータを更新しているときに、他のスレッドがそのデータを更新しようした場合に、データの更新が終わるまで他のスレッドを待機させる機能である。同期制御機能は、複数のスレッドを協調動作させるため、あるスレッドが更新したデータを利用する他のスレッドを、データの更新が終わるまで待機させる機能である。
ミドルウェア816は、オペレーティングシステム815の機能を拡張して、汎用的な機能をアプリケーションプログラム830などのプログラムに提供するプログラムである。ミドルウェア816がアプリケーションプログラム830などのプログラムに提供する機能には、例えば、データベース管理機能など、より高度な処理を実現するための機能や、拡張ファイルアクセス機能、グラフィック機能、ネットワーク機能など、オペレーティングシステム815の機能を補完する機能などがある。
アプリケーションプログラム830は、所定の処理をするプログラムである。アプリケーションプログラム830は、オペレーティングシステム815やミドルウェア816が提供する機能を呼び出して利用する。
ベンチマークプログラム817は、計算機システム810の性能を測定するプログラムである。ベンチマークプログラム817は、所定の計算を実行するのにかかった時間を測定し、処理装置811の処理速度を測定する。また、ベンチマークプログラム817は、オペレーティングシステム815やミドルウェア816が提供する機能を呼び出して、処理にかかった時間を測定し、オペレーティングシステム815やミドルウェア816の処理速度を測定する。
ログ生成プログラム818は、オペレーティングシステム815やミドルウェア816が提供する機能の呼出しや、呼び出された機能の処理の終了などのイベントの発生を記録するプログラムである。ログ生成プログラム818は、イベントの発生時刻、内容などを記録した実行ログを生成する。
図12は、この実施の形態における計算機システム820が実行するプログラムの構成の一例を示す図である。
計算機システム820は、オペレーティングシステム825、ミドルウェア826、ベンチマークプログラム827などのプログラムを実行する。これらのプログラムは、記憶装置814が記憶し、処理装置811が実行する。
オペレーティングシステム825は、オペレーティングシステム815と同様なので、詳しい説明は省略する。なお、オペレーティングシステム825は、オペレーティングシステム815と同じOSであってもよいし、異なるOSであってもよい。
ミドルウェア826は、ミドルウェア816と同様なので、詳しい説明は省略する。なお、ミドルウェア826は、ミドルウェア816と同じミドルウェアであってもよいし、同等の機能を提供する異なるミドルウェアであってもよい。
ベンチマークプログラム827は、ベンチマークプログラム817と同様なので、詳しい説明は省略する。ベンチマークプログラム827は、ベンチマークプログラム817による測定結果と対比できるよう、ベンチマークプログラム817が測定する項目と同じ項目について、計算機システム820の性能を測定する。
アプリケーションプログラム830は、コンパイルし直すなどの細かな修正が必要になる場合はあるものの、原則として、計算機システム820でも実行することができる。ただし、上述したように、現時点では、計算機システム820がアプリケーションプログラム830を実行することはできないものとする。
図13は、この実施の形態における性能予測装置100の外観の一例を示す斜視図である。
性能予測装置100は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
図14は、この実施の形態における性能予測装置100のハードウェア資源の一例を示す図である。
性能予測装置100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、フローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図15は、この実施の形態における性能予測装置100の機能ブロックの構成の一例を示すブロック構成図である。
性能予測装置100は、第一性能取得部121と、第二性能取得部122と、実行ログ取得部123と、第一実行時間取得部131と、実行時間比取得部132と、総実行時間算出部141と、第二実行時間算出部142と、総実行時間予測部150とを有する。
第一性能取得部121は、CPU911を用いて、計算機システム820の性能を表わす性能測定データを取得する。第一性能取得部121は、磁気ディスク装置920を用いて、取得した性能測定データを記憶する。
第一性能取得部121が取得する性能測定データは、計算機システム820がベンチマークプログラム827を実行することにより生成されたデータである。性能測定データは、ベンチマーク試験により測定された計算機システム820の性能を表わす。性能測定データには、例えば、次のようなデータが含まれる。
・処理装置性能データ
処理装置性能データは、計算機システム820の処理装置811の性能を表わす。処理装置性能データは、例えば、所定の計算をする試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
・ファイルアクセス性能データ
ファイルアクセス性能データは、オペレーティングシステム825やミドルウェア826がファイルとして管理する計算機システム820の記憶装置814が記憶したデータに対するアクセスの性能を表わす。ファイルアクセス性能データは、例えば、ファイルの読み出しや書き込みを実行する試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
・イベント切替性能データ
イベント切替性能データは、オペレーティングシステム825が提供するイベント切替機能の性能を表わすデータである。イベント切替性能データは、例えば、イベント切替を多発させる試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
・排他制御性能データ
排他制御性能データは、オペレーティングシステム825が提供する排他制御機能の性能を表わすデータである。排他制御性能データは、例えば、排他制御を多発させる試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
・同期制御性能データ
同期制御性能データは、オペレーティングシステム825が提供する同期制御機能の性能を表わすデータである。同期制御性能データは、例えば、同期制御を多発させる試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
・グラフィック性能データ
グラフィック性能データは、計算機システム820の出力装置813の一つとして、画像を表示する表示装置がある場合に、オペレーティングシステム825やミドルウェア826が表示装置に所定の図形を表示する性能を表わすデータである。グラフィック性能データは、例えば、所定の図形を描画する試験プログラムを計算機システム820が実行するのにかかった時間を表わすデータである。
このように、性能測定データは、計算機システム820の様々な性能を測定した結果を表わすデータが含まれる。
第二性能取得部122は、CPU911を用いて、計算機システム810の性能を表わす性能測定データを取得する。第二性能取得部122は、磁気ディスク装置920を用いて、取得した性能測定データを記憶する。
第二性能取得部122が取得する性能測定データは、計算機システム810がベンチマークプログラム817を実行することにより生成されたデータである。なお、第二性能取得部122が取得する計算機システム810の性能測定データの内容は、第一性能取得部121が取得する計算機システム820の性能測定データと同様なので、詳しい説明は省略する。
第一実行時間取得部131は、CPU911を用いて、第一性能取得部121が記憶した性能測定データに基づいて、計算機システム820において、特定の処理を実行するのにかかる時間を算出する。第一実行時間取得部131は、磁気ディスク装置920を用いて、算出した時間を表わすデータを記憶する。第一実行時間取得部131が記憶するデータを「第一実行時間データ」と呼ぶ。
特定の処理とは、例えば、イベント切替処理、排他制御処理、同期制御処理、ファイルアクセス処理、グラフィック処理などである。これらの処理は、計算機システム820がオペレーティングシステム825やミドルウェア826などのプログラムを実行することにより実現される。これらの処理にかかる時間は、処理装置811の性能などに基づいて単純に計算できるものではなく、オペレーティングシステム825での実装や、計算機システム820のハードウェアの性能など様々な要素が絡んでくる。
そこで、第一実行時間取得部131は、実測値に基づいて、これらの処理にかかる時間を算出する。例えば、第一実行時間取得部131は、CPU911を用いて、性能測定データに含まれるファイルアクセス性能データに基づいて、ファイルアクセス処理にかかる時間を算出する。同様に、第一実行時間取得部131は、CPU911を用いて、性能測定データに含まれるイベント切替性能データ、排他制御性能データ、同期制御性能データ、グラフィック性能データなどに基づいて、それぞれ、イベント切替処理、排他制御処理、同期制御処理、グラフィック処理などにかかる時間を算出する。
実行時間比取得部132は、CPU911を用いて、第一性能取得部121が記憶した性能測定データと、第二性能取得部122が記憶した性能測定データとに基づいて、計算機システム820において一般的な処理を実行するのにかかる時間と、計算機システム810において同じ処理を実行するのにかかる時間との比率を算出する。実行時間比取得部132は、磁気ディスク装置920を用いて、算出した比率を表わすデータを記憶する。実行時間比取得部132が記憶するデータを「実行時間比データ」と呼ぶ。
一般的な処理とは、例えば、単純な計算処理などである。これらの処理は、計算機システム810,820がプログラムを実行することにより実現される。これらの処理にかかる時間は、主に処理装置811の性能などによって決まる。同じ処理を計算機システム810が実行した場合にかかる時間と、計算機システム820が実行した場合にかかる時間との間には、概ね比例関係があると考えられる。
実行ログ取得部123は、CPU911を用いて、計算機システム810におけるアプリケーションプログラム830の実行ログを取得する。実行ログ取得部123は、磁気ディスク装置920を用いて、取得した実行ログを記憶する。
実行ログ取得部123が取得する実行ログは、計算機システム810がアプリケーションプログラム830を実行しているときに、計算機システム810がログ生成プログラム818を実行することにより生成したものである。
総実行時間算出部141は、CPU911を用いて、実行ログ取得部123が記憶した実行ログに基づいて、計算機システム810がアプリケーションプログラム830を実行するのにかかった時間を算出する。総実行時間算出部141は、磁気ディスク装置920を用いて、算出した時間を表わすデータを記憶する。総実行時間算出部141が記憶するデータを「総実行時間データ」と呼ぶ。
第二実行時間算出部142は、CPU911を用いて、実行ログ取得部123が記憶した実行ログに基づいて、計算機システム810がアプリケーションプログラム830の実行中にオペレーティングシステム825やミドルウェア826の機能を呼び出すことにより、特定の処理を実行するのにかかった時間を算出する。第二実行時間算出部142は、磁気ディスク装置920を用いて、算出した時間を表わすデータを記憶する。第二実行時間算出部142が記憶するデータを「第二実行時間データ」と呼ぶ。
第二実行時間算出部142が実行時間を算出する特定の処理は、第一実行時間取得部131が十湖時間を算出した特定の処理と同じ処理である。
例えば、第二実行時間算出部142は、CPU911を用いて、実行ログのなかから、システムコールの呼出しやミドルウェア826の呼出しなど、特定の処理の開始を示すログを探して、特定の処理の開始時刻を取得する。第二実行時間算出部142は、CPU911を用いて、実行ログのなかから、呼び出されたシステムコールやミドルウェア826の処理の終了など、その特定の処理の終了を示すログを探して、その特定の処理の終了時刻を取得する。第二実行時間算出部142は、CPU911を用いて、取得した開始時刻から終了時刻までの経過時間を算出して、その特定の処理の実行にかかった時間を求める。
第二実行時間算出部142は、CPU911を用いて、計算機システム810がアプリケーションプログラム830の実行中に実行したすべての特定の処理について、それぞれの実行時間を算出する。同じ特定の処理を複数回実行した場合、第二実行時間算出部142は、各回の実行について、それぞれの実行時間を算出する。
総実行時間予測部150は、CPU911を用いて、計算機システム820がアプリケーションプログラム830を実行するのにかかる時間を予測する。総実行時間予測部150は、CPU911を用いて、第一実行時間取得部131が記憶した第一実行時間データと、実行時間比取得部132が記憶した実行時間比データと、総実行時間算出部141が記憶した総実行時間データと、第二実行時間算出部142が記憶した第二実行時間データとに基づいて、予測時間を算出する。総実行時間予測部150は、磁気ディスク装置920を用いて、算出した予測時間を表わすデータを記憶する。総実行時間予測部150が記憶したデータを「総実行時間予測データ」と呼ぶ。総実行時間予測部150は、CPU911を用いて、記憶した総実行時間予測データを出力する。
例えば、総実行時間予測部150は、CPU911を用いて、第二実行時間データが表わす実行時間を合計して、計算機システム810がアプリケーションプログラム830の実行中に実行した特定の処理の実行時間の総合計時間を算出する。総実行時間予測部150は、CPU911を用いて、算出した特定の処理の実行時間の総合計時間を、総実行時間データが表わす実行時間から差し引いた差を算出して、計算機システム810がアプリケーションプログラム830の実行中に実行した特定の処理以外の一般的な処理の実行時間の総合計時間を算出する。総実行時間予測部150は、CPU911を用いて、算出した一般的な処理の実行時間の総合計時間に、実行時間比データが表わす比率を乗じた積を算出して、計算機システム820がアプリケーションプログラム830の実行中に実行する一般的な処理の実行時間の総合計時間を予測する。
総実行時間予測部150は、CPU911を用いて、第二実行時間データが表わす特定の処理それぞれの実行時間を、第一実行時間データが表わす同じ特定の処理それぞれの実行時間で置き換える。総実行時間予測部150は、CPU911を用いて、置き換えた実行時間を合計して、計算機システム820がアプリケーションプログラム830の実行中に実行する特定の処理の実行時間の総合計時間を予測する。
総実行時間予測部150は、CPU911を用いて、予測した一般的な処理の実行時間の総合計時間と、予測した特定の処理の実行時間の総合計時間とを合計して、計算機システム820がアプリケーションプログラム830を実行するのにかかる時間を予測する。
図16は、この実施の形態における性能予測処理S610の流れの一例を示すフローチャート図である。
性能予測処理S610において、性能予測装置100は、アプリケーションプログラム830を計算機システム820が実行するのにかかる時間を予測する。性能予測処理S610は、第一性能取得工程S611と、第二性能取得工程S612と、特定処理選択工程S613と、第一実行時間算出工程S614と、一般第一実行時間算出工程S615と、一般第二実行時間算出工程S616と、実行時間比算出工程S617と、実行ログ取得工程S621と、初期化工程S622と、ログ選択工程S623と、処理種別分岐工程S624と、経過時間算出工程S625と、第二実行時間加算工程S626と、予測実行時間加算工程S627と、処理種別判定工程S628と、総実行時間算出工程S631と、一般実行時間算出工程S632と、一般実行時間予測工程S633と、予測実行時間算出工程S634とを有する。性能予測装置100は、第一性能取得工程S611から処理を開始する。
第一性能取得工程S611において、第一性能取得部121は、CPU911を用いて、計算機システム810についての性能測定データを取得する。
第二性能取得工程S612において、第二性能取得部122は、CPU911を用いて、計算機システム820についての性能測定データを取得する。
特定処理選択工程S613において、第一実行時間取得部131は、CPU911を用いて、実行時間を算出すべき特定の処理のなかから、実行時間をまだ算出していない特定の処理を選択する。
すべての特定の処理について実行時間を算出済であり、実行時間をまだ算出していない特定の処理が存在しない場合、第一実行時間取得部131は、CPU911を用いて、一般第一実行時間算出工程S615へ処理を進める。
実行時間をまだ算出していない特定の処理が存在する場合、第一実行時間取得部131は、CPU911を用いて、実行時間をまだ算出していない特定の処理のなかから、特定の処理を1つ選択する。第一実行時間取得部131は、CPU911を用いて、第一実行時間算出工程S614へ処理を進める。
第一実行時間算出工程S614において、第一実行時間取得部131は、CPU911を用いて、第一性能取得工程S611で第一性能取得部121が取得した性能測定データに基づいて、特定処理選択工程S613で選択した特定の処理について、計算機システム820がその特定の処理を実行するのにかかる時間を算出する。
第一実行時間取得部131は、CPU911を用いて、特定処理選択工程S613に処理を戻し、次の特定の処理を選択する。
一般第一実行時間算出工程S615において、実行時間比取得部132は、CPU911を用いて、第一性能取得工程S611で第一性能取得部121が取得した性能測定データに基づいて、計算機システム820が一般的な処理をするのにかかる時間を算出する。
一般第二実行時間算出工程S616において、実行時間比取得部132は、CPU911を用いて、第二性能取得工程S612で第二性能取得部122が取得した性能測定データに基づいて、計算機システム810が一般的な処理をするのにかかる時間を算出する。
実行時間比算出工程S617において、実行時間比取得部132は、CPU911を用いて、一般第一実行時間算出工程S615で算出した時間を、一般第二実行時間算出工程S616で算出した時間で割った商を計算して、実行時間比を算出する。
実行ログ取得工程S621において、実行ログ取得部123は、CPU911を用いて、計算機システム810がアプリケーションプログラム830を実行したときの実行ログを取得する。
初期化工程S622において、総実行時間算出部141は、CPU911を用いて、実行ログ取得工程S621で実行ログ取得部123が取得した実行ログを、最初から順に1行ずつ選択して、アプリケーションプログラム830の実行開始を表わすログを探す。総実行時間算出部141は、CPU911を用いて、アプリケーションプログラム830の実行開始を表わすログから、アプリケーションプログラム830の実行開始時刻を取得する。
第二実行時間算出部142は、RAM914を用いて、計算機システム810が実行した特定の処理の実行時間の総合計時間として、0を記憶する。第二実行時間算出部142は、RAM914を用いて、処理の種別として、「一般的な処理」を意味するデータを記憶する。
総実行時間予測部150は、RAM914を用いて、計算機システム820が実行する特定の処理の実行時間の総合計時間として、0を記憶する。
ログ選択工程S623において、第二実行時間算出部142は、CPU911を用いて、実行ログ取得工程S621で実行ログ取得部123が取得した実行ログから、次の1行のログを選択する。
処理種別分岐工程S624において、第二実行時間算出部142は、CPU911を用いて、記憶している処理の種別が「一般的な処理」か「特定の処理」かによって処理を分岐する。
処理の種別が「一般的な処理」の場合、第二実行時間算出部142は、CPU911を用いて、処理種別判定工程S628へ処理を進める。
処理の種別が「特定の処理」の場合、第二実行時間算出部142は、CPU911を用いて、経過時間算出工程S625へ処理を進める。
経過時間算出工程S625において、第二実行時間算出部142は、CPU911を用いて、ログ選択工程S623で取得したログから、そのログが記録された時刻を取得する。第二実行時間算出部142は、CPU911を用いて、記憶している処理の開始時刻から、取得した時刻までの経過時間を算出する。
第二実行時間加算工程S626において、第二実行時間算出部142は、CPU911を用いて、記憶した計算機システム810の特定の処理の実行時間の総合計時間に、経過時間算出工程S625で算出した経過時間を加算する。第二実行時間算出部142は、RAM914を用いて、経過時間が加算された総合計時間を記憶する。
予測実行時間加算工程S627において、総実行時間予測部150は、CPU911を用いて、第二実行時間算出部142が記憶した処理の種別に基づいて、第一実行時間算出工程S614で第一実行時間取得部131が算出した実行時間のなかから、同じ特定の処理についての実行時間を取得する。総実行時間予測部150は、CPU911を用いて、記憶した計算機システム820の特定の処理の実行時間の総合計時間に、取得した実行時間を加算する。総実行時間予測部150は、RAM914を用いて、実行時間が加算された総合計時間を記憶する。
処理種別判定工程S628において、第二実行時間算出部142は、CPU911を用いて、ログ選択工程S623で選択したログに基づいて、そのログが記録された時刻に開始された処理の種別を判定する。
ログ選択工程S623で選択したログが、アプリケーションプログラム830の実行終了を表わすログである場合、第二実行時間算出部142は、CPU911を用いて、総実行時間算出工程S631へ処理を進める。
ログ選択工程S623で選択したログが、一般的な処理または特定の処理の開始を表わすログである場合、第二実行時間算出部142は、RAM914を用いて、判定した処理の種別を記憶する。第二実行時間算出部142は、CPU911を用いて、ログ選択工程S623に処理を戻し、次のログを選択する。
総実行時間算出工程S631において、総実行時間予測部150は、CPU911を用いて、ログ選択工程S623で第二実行時間算出部142が選択したログから、アプリケーションプログラム830の実行終了時刻を取得する。総実行時間予測部150は、CPU911を用いて、初期化工程S622で記憶した実行開始時刻と、取得した実行終了時刻とに基づいて、アプリケーションプログラム830の総実行時間を算出する。
一般実行時間算出工程S632において、総実行時間予測部150は、CPU911を用いて、総実行時間算出工程S631で算出した総実行時間から、第二実行時間算出部142が記憶した特定の処理の実行時間の総合計時間を減算して、計算機システム810の一般的な処理の実行時間の総合計時間を算出する。
一般実行時間予測工程S633において、総実行時間予測部150は、CPU911を用いて、一般実行時間算出工程S632で算出した計算機システム810の一般的な処理の実行時間の総合計時間に、実行時間比算出工程S617で算出した実行時間比を乗算して、計算機システム820の一般的な処理の実行時間の総合計時間を算出する。
予測実行時間算出工程S634において、総実行時間予測部150は、CPU911を用いて、記憶した計算機システム820の特定の処理の実行時間の総合計時間と、一般実行時間予測工程S633で算出した計算機システム820の一般的な処理の実行時間の総合計時間とを加算して、計算機システム820がアプリケーションプログラム830を実行するのにかかる時間を算出する。
以上、各実施の形態で説明した構成は、一例であり、異なる実施の形態で説明した構成を組み合わせた構成としてもよい。また、主要でない部分の構成を既存の技術など他の構成と置き換えるなどの変形をした構成としてもよい。
以上説明した性能予測装置(100)は、データを処理する処理装置(CPU911)と、第一実行時間取得部(131;新規システム性能見積部118)と、実行ログ取得部(123;ログ解析部114)と、総実行時間算出部(141;114)と、第二実行時間算出部(142;114)と、総実行時間予測部(150;118)とを有する。
上記第一実行時間取得部(131;118)は、上記処理装置(911)を用いて、第一の計算機システム(820;108)において特定の機能を実現する第一特定プログラム(オペレーティングシステム825,111;ミドルウェア826)について、上記第一特定プログラムを実行するのにかかる時間を取得する。
上記実行ログ取得部(123;114)は、上記処理装置(911)を用いて、上記第一の計算機システム(820;108)及び第二の計算機システム(810;101)において実行可能なアプリケーションプログラム(830;アプリケーション102)について、上記第二の計算機システム(810;101)において上記アプリケーションプログラム(830;102)を実行した実行ログ(アプリケーションログ107)を取得する。
上記総実行時間算出部(141;114)は、上記処理装置(911)を用いて、上記実行ログ取得部(123;114)が取得した実行ログ(107)を解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出する。
上記第二実行時間算出部(142;114)は、上記処理装置(911)を用いて、上記実行ログ取得部(123;114)が取得した実行ログ(107)を解析して、上記第一の計算機システム(820;108)において上記第一特定プログラム(825,111;826)が実現する特定の機能を上記第二の計算機システム(810;101)において実現する第二特定プログラム(オペレーティングシステム815,105;816,103)について、上記アプリケーションプログラム(830;102)が上記第二特定プログラム(815,105;816,103)を呼び出したとき、上記第二特定プログラム(815,105;816,103)を実行するのにかかった時間を算出する。
上記総実行時間予測部(150;118)は、上記処理装置(911)を用いて、上記総実行時間算出部(141;114)が算出した時間のうち、上記第二実行時間算出部(142;114)が算出した時間を上記第一実行時間取得部(131;118)が取得した時間で置き換えることにより、上記第一の計算機システム(820;108)において上記アプリケーションプログラム(830)を実行するのにかかる時間を予測する。
これにより、現時点では第一の計算機システムでアプリケーションプログラムを実行できない場合であっても、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
上記性能予測装置(100)は、実行時間比取得部(132;118)を有する。
上記実行時間比取得部(132;118)は、上記処理装置(911)を用いて、上記第一の計算機システム(820;108)及び上記第二の計算機システム(810;101)において実行可能な一般プログラム(ベンチマークプログラム817,827)について、上記第二の計算機システム(810;101)において上記一般プログラム(817,827)を実行するのにかかる時間に対する、上記第一の計算機システム(820;108)において上記一般プログラム(817,827)を実行するのにかかる時間の比を取得する。
上記総実行時間予測部(150;118)は、上記処理装置(911)を用いて、上記総実行時間算出部(141;114)が算出した時間のうち、上記第二実行時間算出部(142;114)が算出した時間を除く時間に、上記実行時間比取得部(132;118)が取得した比を乗じることにより、上記第一の計算機システム(820;108)において上記アプリケーションプログラムを実行するのにかかる時間を予測する。
これにより、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を更に正確に予測できる。
上記第一特定プログラムは、上記第一の計算機システム(820;108)において動作するオペレーティングシステム(825;111)のシステムコールである。
上記第二特定プログラムは、上記第二の計算機システム(810;101)において動作するオペレーティングシステム(815;105)のシステムコールである。
システムコールの処理にかかる時間は、様々な要因で決まるため、単純な比例関係で換算することはできない。システムコールの処理にかかる時間を、実際に測定した時間で置き換えるので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
上記第一特定プログラム及び上記第二特定プログラムが実現する特定の機能は、イベント切替処理と、排他制御処理と、同期制御処理と、ファイルアクセス処理と、グラフィック処理とのうち少なくともいずれかである。
これらの処理にかかる時間も、様々な要因で決まるため、単純な比例関係で換算することはできない。これらの処理にかかる時間を、実際に測定した時間で置き換えるので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
上記一般プログラムは、ベンチマークプログラム(817,827)である。
上記実行時間比取得部(132;118)は、上記第一の計算機システム(820;108)及び上記第二の計算機システム(810;101)において上記ベンチマークプログラム(817,827)を実行した結果に基づいて、上記処理装置(911)を用いて、上記比を算出する。
ベンチマークプログラムによって測定した結果に基づいて、第一の計算機システムの第二の計算機システムに対する実行速度の比を算出するので、第一の計算機システムでアプリケーションプログラムを実行するのにかかる時間を正確に予測できる。
以上説明した性能予測装置(100)は、コンピュータが実行することにより、コンピュータを性能予測装置をして機能させるコンピュータプログラムにより実現することができる。
100 性能予測装置、101,108 計算機システム、102 アプリケーション、103 ミドルウェア、104 ログ取得部、105,111 オペレーティングシステム、106,112 ハードウェア、107 アプリケーションログ、109 基本性能取得部、113 基本性能結果、114 ログ解析部、115,205 ログ解析結果、116 実測値使用部、117 性能比使用部、118 新規システム性能見積部、119,207 新規システム性能見積結果、121 第一性能取得部、122 第二性能取得部、123 実行ログ取得部、131 第一実行時間取得部、132 実行時間比取得部、141 総実行時間算出部、142 第二実行時間算出部、150 総実行時間予測部、301 ID、302 関数名、303 引数、304 タイムスタンプ、800 性能予測システム、810,820 計算機システム、811 処理装置、812 入力装置、813 出力装置、814 記憶装置、815,825 オペレーティングシステム、816,826 ミドルウェア、817,827 ベンチマークプログラム、818 ログ生成プログラム、830 アプリケーションプログラム、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信装置、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 LAN。

Claims (7)

  1. データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有し、
    上記第一実行時間取得部は、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
    上記実行ログ取得部は、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
    上記総実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
    上記第二実行時間算出部は、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
    上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする性能予測装置。
  2. 上記性能予測装置は、実行時間比取得部を有し、
    上記実行時間比取得部は、上記処理装置を用いて、上記第一の計算機システム及び上記第二の計算機システムにおいて実行可能な一般プログラムについて、上記第二の計算機システムにおいて上記一般プログラムを実行するのにかかる時間に対する、上記第一の計算機システムにおいて上記一般プログラムを実行するのにかかる時間の比を取得し、
    上記総実行時間予測部は、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を除く時間に、上記実行時間比取得部が取得した比を乗じることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする請求項1に記載の性能予測装置。
  3. 上記第一特定プログラムは、上記第一の計算機システムにおいて動作するオペレーティングシステムのシステムコールであり、
    上記第二特定プログラムは、上記第二の計算機システムにおいて動作するオペレーティングシステムのシステムコールであることを特徴とする請求項1または請求項2に記載の性能予測装置。
  4. 上記第一特定プログラム及び上記第二特定プログラムが実現する特定の機能は、イベント切替処理と、排他制御処理と、同期制御処理と、ファイルアクセス処理と、グラフィック処理とのうち少なくともいずれかであることを特徴とする請求項1乃至請求項3のいずれかに記載の性能予測装置。
  5. 上記一般プログラムは、ベンチマークプログラムであり、
    上記実行時間比取得部は、上記第一の計算機システム及び上記第二の計算機システムにおいて上記ベンチマークプログラムを実行した結果に基づいて、上記処理装置を用いて、上記比を算出することを特徴とする請求項1乃至請求項4のいずれかに記載の性能予測装置。
  6. データを処理する処理装置を有するコンピュータが実行することにより、上記コンピュータが請求項1乃至請求項5のいずれかに記載の性能予測装置をして機能することを特徴とするコンピュータプログラム。
  7. データを処理する処理装置と、第一実行時間取得部と、実行ログ取得部と、総実行時間算出部と、第二実行時間算出部と、総実行時間予測部とを有する性能予測装置が、アプリケーションプログラムの性能を予測する性能予測方法において、
    上記第一実行時間取得部が、上記処理装置を用いて、第一の計算機システムにおいて特定の機能を実現する第一特定プログラムについて、上記第一特定プログラムを実行するのにかかる時間を取得し、
    上記実行ログ取得部が、上記処理装置を用いて、上記第一の計算機システム及び第二の計算機システムにおいて実行可能なアプリケーションプログラムについて、上記第二の計算機システムにおいて上記アプリケーションプログラムを実行した実行ログを取得し、
    上記総実行時間算出部が、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記アプリケーションプログラムを実行するのにかかった時間を算出し、
    上記第二実行時間算出部が、上記処理装置を用いて、上記実行ログ取得部が取得した実行ログを解析して、上記第一の計算機システムにおいて上記第一特定プログラムが実現する特定の機能を上記第二の計算機システムにおいて実現する第二特定プログラムについて、上記アプリケーションプログラムが上記第二特定プログラムを呼び出したとき、上記第二特定プログラムを実行するのにかかった時間を算出し、
    上記総実行時間予測部が、上記処理装置を用いて、上記総実行時間算出部が算出した時間のうち、上記第二実行時間算出部が算出した時間を上記第一実行時間取得部が取得した時間で置き換えることにより、上記第一の計算機システムにおいて上記アプリケーションプログラムを実行するのにかかる時間を予測することを特徴とする性能予測方法。
JP2010133015A 2010-06-10 2010-06-10 性能予測装置及びコンピュータプログラム及び性能予測方法 Pending JP2011258058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010133015A JP2011258058A (ja) 2010-06-10 2010-06-10 性能予測装置及びコンピュータプログラム及び性能予測方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010133015A JP2011258058A (ja) 2010-06-10 2010-06-10 性能予測装置及びコンピュータプログラム及び性能予測方法

Publications (1)

Publication Number Publication Date
JP2011258058A true JP2011258058A (ja) 2011-12-22

Family

ID=45474150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010133015A Pending JP2011258058A (ja) 2010-06-10 2010-06-10 性能予測装置及びコンピュータプログラム及び性能予測方法

Country Status (1)

Country Link
JP (1) JP2011258058A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014080598A1 (ja) * 2012-11-20 2014-05-30 日本電気株式会社 運用管理装置、及び、運用管理方法
WO2018163387A1 (ja) * 2017-03-09 2018-09-13 三菱電機株式会社 解析装置、解析方法及び解析プログラム
JP2019513273A (ja) * 2016-03-30 2019-05-23 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
CN109976608A (zh) * 2019-03-15 2019-07-05 努比亚技术有限公司 一种应用计时方法、设备及计算机可读存储介质

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282272B2 (en) 2012-11-20 2019-05-07 Nec Corporation Operation management apparatus and operation management method
JP5954430B2 (ja) * 2012-11-20 2016-07-20 日本電気株式会社 運用管理装置、及び、運用管理方法
WO2014080598A1 (ja) * 2012-11-20 2014-05-30 日本電気株式会社 運用管理装置、及び、運用管理方法
JP7212114B2 (ja) 2016-03-30 2023-01-24 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整
JP2019513273A (ja) * 2016-03-30 2019-05-23 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
JP2020123374A (ja) * 2016-03-30 2020-08-13 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
JP2021182428A (ja) * 2016-03-30 2021-11-25 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整
JP7021280B2 (ja) 2016-03-30 2022-02-16 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
JP2022058878A (ja) * 2016-03-30 2022-04-12 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
JP2023052349A (ja) * 2016-03-30 2023-04-11 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整
JP7301183B2 (ja) 2016-03-30 2023-06-30 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータの導出
JP7485802B2 (ja) 2016-03-30 2024-05-16 株式会社ソニー・インタラクティブエンタテインメント 後方互換性のためのアプリケーション固有動作パラメータのリアルタイム調整
JPWO2018163387A1 (ja) * 2017-03-09 2019-03-14 三菱電機株式会社 解析装置、解析方法及び解析プログラム
WO2018163387A1 (ja) * 2017-03-09 2018-09-13 三菱電機株式会社 解析装置、解析方法及び解析プログラム
CN109976608A (zh) * 2019-03-15 2019-07-05 努比亚技术有限公司 一种应用计时方法、设备及计算机可读存储介质
CN109976608B (zh) * 2019-03-15 2021-07-23 努比亚技术有限公司 一种应用计时方法、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10831501B2 (en) Managing an issue queue for fused instructions and paired instructions in a microprocessor
US9329968B2 (en) Testing application performance using virtual machines created from the same image on different hardware platforms
US8407459B2 (en) Information processing apparatus and boot completion notification program
US20120011505A1 (en) Computer system and recording medium
US10572301B2 (en) Extract CPU time facility
KR20140033169A (ko) 가상 머신 이미지 분석 기법
JP5874811B2 (ja) 情報処理方法、プログラム、および情報処理装置
US8286087B1 (en) Active route validation in workflow process authoring
US9612837B2 (en) Trace method and information processing apparatus
US9934133B1 (en) Code coverage through overlay hooks
CN111033467B (zh) 用于促进计算环境内的处理的系统和方法
JP2011258058A (ja) 性能予測装置及びコンピュータプログラム及び性能予測方法
CN105630575A (zh) 针对kvm虚拟化服务器的性能评估方法
JP5803935B2 (ja) 可用性分析装置及び可用性分析方法
US20160217017A1 (en) Determining workflow completion state
US9529487B1 (en) Method of providing fast switching to web apps
US11042463B2 (en) Computer, bottleneck identification method, and non-transitory computer readable storage medium
JP2007279861A (ja) ビジネスプロセス管理装置及びビジネスプロセス管理方法及びビジネスプロセス管理プログラム
US20230229399A1 (en) Developer tools for generating and providing visualizations for data density for developing computer applications
US10114621B2 (en) Methods and apparatus to generate a wizard application
CN114510179A (zh) 选项勾选状态信息确定方法、装置、设备、介质及产品
JP5197128B2 (ja) 依存関係推定装置及び依存関係推定プログラム及び記録媒体
CN111026989A (zh) 页面加载时间的检测方法、装置和电子设备
US20250247349A1 (en) Method and device for automatically scrolling and capturing a dialogue box running on an android-based portable terminal
JP6335329B2 (ja) プログラム依存部可視化装置、方法、およびプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20121207