[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5240220B2 - ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム - Google Patents

ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム Download PDF

Info

Publication number
JP5240220B2
JP5240220B2 JP2010047422A JP2010047422A JP5240220B2 JP 5240220 B2 JP5240220 B2 JP 5240220B2 JP 2010047422 A JP2010047422 A JP 2010047422A JP 2010047422 A JP2010047422 A JP 2010047422A JP 5240220 B2 JP5240220 B2 JP 5240220B2
Authority
JP
Japan
Prior art keywords
performance
software
execution environment
nest
environment information
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.)
Active
Application number
JP2010047422A
Other languages
English (en)
Other versions
JP2011181034A (ja
Inventor
育実 藤原
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2010047422A priority Critical patent/JP5240220B2/ja
Publication of JP2011181034A publication Critical patent/JP2011181034A/ja
Application granted granted Critical
Publication of JP5240220B2 publication Critical patent/JP5240220B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェアの実効性能を評価する技術に関する。
ソフトウェアの実効性能を測定するためには、測定対象のソフトウェアを実行環境に配備し、実際に動作させ、性能測定用の各種ツールを利用してデータを収集するのが一般的である。このため測定者は、測定を実施するたびに煩雑な作業を行わなければならず、また、長時間を要する処理の実効性能を測定する際には、処理が完了するまで毎回待たなくてはならないという問題があった。
さらに、ソフトウェアが、ハードウェア、ミドルウェア、ネットワーク等の実行環境の性能や仕様に大きく影響を受ける場合、実行環境を変更するたびに、実行環境と同様の構成で測定を実施し直す必要があり、そのたびに多大な手間と時間を費やさなければならなかった。
特に、ソフトウェアの実行するための基盤となるハードウェアやミドルウェア、OS(Operating System)、ネットワーク等は年々多様化しており、その性能や仕様も様々である。ミドルウェアに関しては、商用利用に耐えるOSS(Open Source Software)が登場し、開発コスト削減のためにこれらのOSSミドルウェアを利用する企業が増加しているが、OSSのミドルウェアは有償のミドルウェアと比較すると、性能が劣る場合が多く、導入するためには各種のOSSの性能を慎重に比較検討する必要がある。また、ソフトウェアの開発形態は再利用性、柔軟性を追求したSaaS(Software as a Service)やSOA(Service-Oriented Architecture)等のサービス指向型アプリケーションの需要が高まっている。これらのサービス指向型アプリケーションにおいては、従来型のアプリケーションと比較して様々な実行環境に配備された個別のコンポーネントが、ネットワークを介して連携することが多く、アプリケーションの実行環境の性能がアプリケーションの性能に大きな影響を与える。
このような状況から、ソフトウェアの実効性能の評価については、様々な手法が提案されている。例えば、特許文献1は、プログラムの実装前に、ソフトウェアのプログラムコードのステップ数を計測することで、ソフトウェアの性能を評価する技術を開示している。また、この他、実行環境のプロセッサのクロック数と、プログラムコード全体のステップ数とを比較して性能を自動測定するソフトウェアの実効性能を測定する方式も存在した(例えば、特許文献2)。
特開2001−273174号公報 特開2006−4211号公報
しかしながら、上記の方式では、プロセッサのクロック数とプログラムコード全体のステップ数とを単純比較しているのみであり、プログラムが動作するOSやミドルウェア、ネットワークの仕様・性能を含めて性能を算出し、性能測定時の構成を指定して測定を行うことはできない。また、上記の方式では、プログラムコード全体のステップ数を対象としており、特定の分岐ブロックのみを通過するテストを行い、当該ブロック部分のみの性能を調べるといったことが困難であるという課題があった。
さらに、ソフトウェアの実効性能の測定手法や測定に用いる各種ツールが統一されておらず、異なる担当者が独自の方式で性能測定を実施した場合、担当者ごとの性能測定の結果に齟齬が発生する可能性があった。
本発明は、上記問題に鑑みてなされたものであり、ソフトウェアプログラムを実行させることなく、所定の実行環境における、特定ブロックのみの実効性能を求めることを可能とするソフトウェア実効性能評価システム及びソフトウェア実効性能評価方法、及びプログラムを提供することを目的とする。
上記目的を達成する本発明の第1の観点に係るソフトウェア実効性能評価システムは、
ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得部と、
前記実行環境情報を記憶する実行環境情報記憶部と、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、
を備え
前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
とを特徴とする。
また、本発明の第2の観点に係るソフトウェア実効性能評価方法は、
実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、
前記実行環境情報取得部が、ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得工程と、
前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、
前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、
前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、
選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、
前記性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、
を備え
前記性能取得工程において、前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
とを特徴とする。
また、本発明の第3の観点に係るプログラムは、
コンピュータを、
ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得部、
前記実行環境情報を記憶する実行環境情報記憶部、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、
として機能させ
前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
ように機能させることを特徴とする。
本発明によれば、ソフトウェアプログラムを実行させることなく、所定の実行環境での、特定ブロックのみの実効性能を求めることを可能とするソフトウェア実効性能評価システム及びソフトウェア実効性能評価方法、及びプログラムを提供することができる。
本発明の実施形態に係るソフトウェア実効性能評価システムの全体構成を示す図である。 実行環境の実行環境情報データ((a)CPU、(b)APサーバ、(c)DBMSサーバ、(d)OS、(e)LANカード、(f)DLL)の一例を示す図である。 実行環境の性能情報データ((a)CPU、(b)APサーバ、(c)DBMSサーバ、(d)OS、(e)LANカード、(f)DLL)の一例を示す図である。 実効性能の評価を行うソフトウェアのネスト構造を説明するための図である。 ソフトウェアソースコード情報を説明するための図である。 性能評価対象スクリプトを説明するための図である。 ソフトウェアの実効性能の評価結果を示す図である。 実施形態の実行環境解析装置が行う処理を説明するためのフローチャートである。 本実施形態のソフトウェア解析装置が行う処理を説明するためのフローチャートである。 実施形態の実効性能測定装置が行う処理を説明するためのフローチャートである。
(実施形態)
本発明の実施形態に係るソフトウェア実効性能評価システム1は、i)ソフトウェア実行環境の仕様及び性能に関する情報を取得して、当該情報をデータベースに登録し、ii)ソフトウェアのネスト及び各ネスト内のステップ数を解析し、iii)実行環境の仕様及びソフトウェアのネストの指定を受け付け、iv)データベースに記憶された情報と、選択されたネスト内のステップ数とに基づいて、ソフトウェアの実効性能を示す値を求める。
以下、図面を参照してソフトウェア実効性能評価システム1を詳細に説明する。
ソフトウェア実効性能評価システム1は、図1に示すように、実行環境解析装置100と、実行環境データベース200と、ソフトウェア解析装置300と、実効性能測定装置400と、から構成される。実行環境解析装置100と実行環境データベース200は、例えば、LAN(Local Area Network)により、相互にデータの送受が可能である。また、同様に、実行環境データベース200と実効性能測定装置400、及び、ソフトウェア解析装置300と実効性能測定装置400は、例えば、LANにより、相互にデータの送受が可能である。実行環境解析装置100は、インターネット等のネットワーク500を介して、ソフトウェアを実行し得るソフトウェア実行環境601〜60nを構成するコンピュータと通信を行う。
ソフトウェア実行環境601〜60n(n:任意)は、例えば、ハードウェア、ミドルウェア、OS(Operating System)、ネットワーク、及びランタイムライブラリ等により構成される。そして、ソフトウェア実行環境601〜60nを構成する、ハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリは、それぞれ、1つ以上の構成要素を有する。具体的には、ハードウェアはCPU等の構成要素、ミドルウェアはAPサーバ及びDBMS(Date Base Management System)等の構成要素、ネットワークはLANカード等の構成要素、ランタイムライブラリはDLL(Dynamic Link Library)等の構成要素を有する。
実行環境解析装置100は、i)ソフトウェア実行環境(ソフトウェア実行環境601〜60n)の仕様及び性能に関する情報を取得して、データベース(実行環境データベース200)に登録する。
実行環境解析装置100は、一般的なコンピュータにより実現され、機能的には、通信部101と、制御部102と、記憶部103と、I/F部104と、から構成される。
通信部101は、所定の通信方式により、第1のネットワーク500を介して、ソフトウェア実行環境601〜60nを構成するコンピュータとデータの送受を行う。また、通信部101は、所定の通信方式により、実行環境データベース200とデータの送受を行う。
制御部102は、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、を備え、ROM等に記憶されているソフトウェアプログラムに従って、実行環境解析装置100全体の制御を行う。制御部102は、所定の周期で、ソフトウェア実行環境601〜60nの仕様及び性能を検出する機能を有する。例えば、制御部102は、内部タイマに従って、図8のフローチャートに示す実行環境解析処理を行って、ソフトウェア実行環境601〜60nを構成するハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリの構成要素の仕様を示す「実行環境情報」と、性能を示す「性能情報」とを取得し、取得した実行環境情報と性能情報とを、実行環境データベース200に格納させる。
なお、I/F部104が、ユーザより、ソフトウェア実行環境601〜60nの仕様及び性能を取得する処理の開始の指示を受け付けると、制御部102が、図8のフローチャートに示す実行環境解析処理を実行するようにしてもよい。
また、制御部102は、所定の周期でソフトウェア実行環境601〜60nの仕様及び性能を検出するのではなく、仕様の変更を検出する機能を有し、変更が検出された場合に、図8のフローチャートに示す実行環境解析処理を実行して、ソフトウェア実行環境601〜60nの仕様及び性能を検出するようにしてもよい。例えば、制御部102は、所定の周期でソフトウェア実行環境601〜60nを構成するハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリの構成ファイルを読み込み、読み込んだ結果を記憶部103等に記憶する。そして、制御部102は、記憶部103等が記憶する、先に読み込んだ構成ファイルと現在読み込んだ構成ファイルとを比較して、両者の間で差異が検出された場合、ソフトウェアの実行環境601〜60nの仕様が変更されたと見なし、実行環境解析処理を実行する。
以下、ハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリの各構成要素についての実行環境情報及び性能情報の具体例を示す。
CPUの実行環境情報は、「CPUの名称(CPUネーム)」及びCPUの型番を示す「プロセッサナンバー」等を示す情報を含み、CPUの性能情報は、「キャッシュメモリ容量」、「動作周波数」及び「FSB(Front Side Bus)の動作周波数」等を示す情報を含む。
APサーバ及びDBMSの実行環境情報は、「AP/DBMSの名称(AP/DBMSネーム)」及び「バージョン」等を示す情報を含み、APサーバ及びDBMSの性能情報は、APサーバ及びDBMSが実行する各「実行コマンド」、各実行コマンドの「ステップ数」、所定のソフトウェア実行環境で各実行コマンドを実行する際に要した「TAT(Turn Around Time)」、「CPU使用率」、「メモリ使用率」、及び「ネットワーク帯域使用率」等を示す情報を含む。
OSの実行環境情報は、「OSの名称(OSネーム)」及び「バージョン」等を示す情報を含み、OSの性能情報は、OSの「推奨クロック速度」、OSの「推奨RAM容量」、及びOSの性能係数等を示す情報を含む。ここで、性能係数とは、ソフトウェア実効性能にOSの種類がどの程度影響を与えるかを示す値である。例えば、予め、同一のハードウェア構成及びソフトウェア構成を有するテスト環境において、テストプログラムを種々のOS上で実行した場合のソフトウェア実効性能の値(TAT、CPU使用率、メモリ使用率、TAT、及びネットワーク帯域使用率)を求める。そして、各実効性能の値が所定の閾値を越えた場合は“1”、超えない場合は“0”と定める。なお、性能係数の決め方は任意であり、例えば、上記テストにより求めたソフトウェア実効性能の値に比例するような値でもよい。
LANカードの実行環境情報は、「LANカードの名称(LANカードネーム)」等を示す情報を含み、LANカードの性能情報は、「伝送速度」、「Jumbo Frame」の大きさ及び「伝送距離」等を示す情報を含む。
DLLの実行環境情報は、「DLLファイルの名称(DLLネーム)」及び「バージョン」等を示す情報を含み、DLLの性能情報は、各DLLファイルの「ステップ数」、所定のソフトウェア実行環境で各DLLファイルを実行する際に要した「CPU使用率」、「メモリ使用率」、「TAT」、及び「ネットワーク帯域使用率」等を示す情報を含む。
そして、制御部102は、通信部101に、取得した実行環境情報及び性能情報を、実行環境データベース200へ送出させる。
記憶部103は、ハードディスクやフラッシュメモリ等の記憶装置から構成される。記憶部103は、例えば、制御部102が取得した、実行環境情報及び性能情報を一時的に格納する。
I/F部104は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、I/F部104は、所定のソフトウェア実行環境に対する実行環境解析処理の開始の指示を受け付ける。
実行環境データベース200は、ハードディスク等の記憶装置から構成される。実行環境データベース200は、実行環境解析装置100が取得した(例えば、ソフトウェア実行環境601(SE1)の)実行環境情報及び性能情報を受け付けると、当該実行環境情報を実行環境情報テーブル201(図2)、当該性能情報を性能情報テーブル202(図3)に登録する。実行環境データベース200は、他のソフトウェア実行環境(ソフトウェア実行環境602〜60n)の実行環境情報及び性能情報を受け付けた場合も、同様に実行環境情報テーブル201、性能情報テーブル202に登録する。
ソフトウェア解析装置300は、ii)ソフトウェアのネスト構造及び各ネストの性能を解析する。
ソフトウェア解析装置300は、一般的なコンピュータにより実現され、機能的には、通信部301と、制御部302と、記憶部303と、I/F部304と、から構成される。
通信部301は、所定の通信方式により、実効性能測定装置400とデータの送受を行う。
制御部302は、CPUと、RAMと、ROMと、を備え、ROM等に記憶されているソフトウェアプログラムに従って、ソフトウェア解析装置300全体の制御を行う。例えば、実効性能測定装置400からソフトウェア解析処理の開始の指示を受け付けると、制御部302は、図9のフローチャートに示す処理(ソフトウェア解析処理)を行い、性能評価対象のソフトウェアのネスト構造及びネスト内のステップ数を取得する。また、例えば、I/F部304が、ユーザによるソフトウェア解析処理の開始の指示を受け付けると、図9のフローチャートに示す処理を行うようにしてもよい。
例えば、図4に示すソフトウェアソースコードSW1に対しソフトウェア解析処理を行ったとする。制御部302は、ソフトウェアソースコードSW1のネスト構造を分析し、各ネストa1(クラスを表すネスト)、ネストb1(メソッドや関数を表すネスト)、ネストc1/c2(分岐処理を表すネスト)、ネストd1(繰り返しを表すネスト)を抽出する。そして、制御部302は、各ネストに含まれるソースコードから、ステップ数を求める。この際、ネスト内で繰り返し処理が行われている場合は、ソースコードのライン数からステップ数を求めるのではなく、繰り返し回数を乗じて実際に実行されるステップ数を求める。制御部302は、解析した結果を記憶部303に記憶させる。
記憶部303は、ハードディスクやフラッシュメモリ等の記憶装置から構成される。記憶部303は、制御部302が取得した、ソフトウェアのネスト構造及びネスト内のステップ数を、例えば、図5(ソフトウェアソースコード情報303a)に示すように格納する。ソフトウェアソースコード情報303aは、評価対象の「ソフトウェア」と、当該ソフトウェアに含まれる「ネスト」と、各ネストの「上位のネスト」と、各ネストの「下位のネスト」と、各ネストに含まれる「ステップ数」とを示す情報を含む。
I/F部304は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、I/F部304は、ソフトウェア解析処理の開始の指示、及び実効性能解析の対象とするソフトウェアソースコードSW1の指定を受け付け、ソフトウェア解析処理の結果(図5のソフトウェアソースコード情報)をモニタに出力する。
実効性能測定装置400は、iii)実行環境の仕様及びソフトウェアのネストの指定を受け付け、iv)データベースに記憶された情報と、選択されたネスト内のステップ数とに基づいて、ソフトウェアの実効性能を示す値を求める。
実効性能測定装置400は、一般的なコンピュータにより実現され、機能的には、通信部401と、制御部402と、記憶部403と、I/F部404と、から構成される。
通信部401は、所定の通信方式により、実行環境データベース200、及びソフトウェア解析装置300とデータの送受を行う。
制御部402は、CPUと、RAMと、ROMと、を備え、ROM等に記憶されているソフトウェアプログラムに従って、実効性能測定装置400全体の制御を行う。例えば、I/F部404がソフトウェアの実効性能の測定を開始する指示を受け付けると、制御部402は、図10のフローチャートに示す処理(実効性能測定処理)を行う。すなわち、ユーザが指定した、実行環境の仕様を示す情報(CPU ID、APサーバID等)に基づいて実行環境データベース200から該当する実行環境の性能情報を読み込み、また、ユーザが指定したソフトウェアのネストに基づいて、ソフトウェア解析装置300に記憶されたソフトウェアソースコード情報303aから、当該ネスト内のステップ数を読み込む。そして、読み込んだ性能情報とステップ数とからソフトウェアの実効性能を示す値を求める。以下、ユーザが指定した実行環境の仕様及びソフトウェアのネストを、併せて「評価対象指定情報」という。
ここで、ソフトウェアの実効性能を示す値は、例えば、TAT、CPU使用率、メモリ使用率、又はネットワーク使用率であり、評価対象指定情報に基づいて、以下のように求めることができる。
CPU、APサーバ、DBMS、OS、LANカード、及びDLLの構成要素を有する、所定の実行環境において、X個のステップ数を含むプログラムを実行した際に測定されたTAT、CPU使用率、メモリ使用率、及びネットワーク使用率をそれぞれ(t、u、v、w)とする。予め複数の実行環境の図3に示す性能情報と、当該実行環境においてX個のステップ数を有するソフトウェアを実行した場合のTAT、CPU使用率、メモリ使用率、及びネットワーク使用率の測定値(t、u、v、w)〜(t、u、v、w)とを求めておく。そして、性能情報の値(図3)及びソフトウェアのステップ数を従属変数として、TAT、CPU使用率、メモリ使用率、又はネットワーク使用率を表す論理モデル(式)を回帰分析により求める。
例えば、以下に示すTATの論理モデルの各係数a、b、c、d、e、f、gを、回帰分析により求める。
TAT=a×動作周波数+b×ステップ数(APサーバ)+c×ステップ数(DBMS)+d×性能係数+e×伝送速度+f×ステップ数(DLL)+g×X(ソフトウェアのステップ数)
なお、性能情報の組み合わせは任意であり、ユーザが適宜選択できるとする。
このように求めた論理式は、記憶部403に記憶され、ユーザが評価対象指定情報を指定すると、制御部402は、上記論理式の従属変数の値を求めて、当該論理式に代入し、ソフトウェアの実効性能を示す値を求める。
記憶部403は、ハードディスクやフラッシュメモリ等の記憶装置を備え、例えば、ソフトウェアの実効性能を算出するための論理式や制御部402が求めたソフトウェアの実効性能を示す値を格納する。
I/F部404は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、I/F部104は、実効性能測定処理の開始の指示を受け付け、モニタに、評価対象指定情報を指定するためのスクリプト(図6の評価対象指定スクリプト)を表示する。また、ユーザがキーボード等で評価対象指定スクリプトを編集して、評価対象指定情報を指定すると、制御部402は実効性能測定処理を行い、求めた結果(図7、実効性能測定結果テーブル)をモニタに出力する。
次に、上記構成を有するソフトウェア実効性能評価システム1の実行環境解析装置100、ソフトウェア解析装置300、及び実効性能測定装置400が行う動作(図8乃至図10)について説明する。以下では、実行環境解析装置100は、内部タイマに従って所定の周期で、実行環境解析処理を行い、ソフトウェア解析装置300は、実効性能測定装置400からソフトウェア解析処理開始の指示を受け付けると、ソフトウェア解析処理を開始する。実効性能測定装置400は、ユーザから実効性能測定処理開始の指示を受け付けると、実効性能測定処理を開始する。この際、実効性能測定装置400は、ソフトウェア解析装置300に、ソフトウェア解析処理開始の指示を送信する。
実行環境解析装置100は、内部タイマに従って、所定の周期で、図8に示す実行環境解析処理を開始する。
制御部102は、ソフトウェア実行環境601〜60nに関する情報を取得する(ステップS11)。例えば、ソフトウェア実行環境601〜60nを構成するコンピュータと通信を行い、当該コンピュータが有する構成ファイルを読み込む。
次に、制御部102は、取得したソフトウェア実行環境601〜60nを構成するハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリの構成要素に関する実行環境情報及び性能情報を得る(ステップS12)。例えば、構成ファイルから、ソフトウェア実行環境601(SE1)が有するCPUの「CPUネーム」は“XXX”、「プロセッサナンバー」は“E8600”といった情報を取得する。同様に、APサーバの「APサーバネーム」は“XX Server”、「バージョン」は“6.0.1”、DBMSの「DBMSネーム」は“XX DB”、「バージョン」は“1.2.1”、OSの「OSネーム」は“XXXX”、「バージョン」は“YY”、LANカードの「LANカードネーム」は“XXX−XXX”、DLLの「DLLネーム」は“XXX.dll”、「バージョン」は“11.0.6568”等の情報を取得する。
また、制御部102は、各構成要素の性能情報を取得する。例えば、上記CPU(“XXX”)の「キャッシュメモリ容量」は“6MB L2”、「動作周波数」は“3.33GHz”、「FSB」は“1333MHz”、上記APサーバ(“XX Server”)で実行される「実行コマンド」は“callEJB()”、「ステップ数」は“1000”、「CPU使用率」は“1%”、「メモリ使用率」は“1%”、「TAT」は“7000μs”、「ネットワーク帯域使用率」は“1%”、上記DBMS(“XX DB”)で実行される「実行コマンド」は“select”、「CPU使用率」は“1%”、「メモリ使用率」は“1%”、「TAT」は“300μs”、「ネットワーク帯域使用率」は“1%”、上記OS(“XXXX”)の「推奨クロック速度」は“300MHz”、「推奨RAM容量」は“128MB”、「HDD容量」は“2.1GB”、上記LANカード(“XXX−XXX”)の「伝送速度」は“1,000Mbps”、「Jumbo Frame」は“7,154bytes”、「伝送距離」は“100m”、上記DLL(“XXX.dll”)の「ステップ数」は“500”、「CPU使用率」は“1%”、「メモリ使用率」は“1%”、「TAT」は“300μs”、「ネットワーク帯域使用率」は“1%”等の情報を取得する。
そして、制御部102は、解析した結果の、ハードウェア、ミドルウェア、OS、ネットワーク、及びランタイムライブラリの実行環境情報及び性能情報を、実行環境データベース200に出力する(ステップS13)。実行環境データベース200は、図2A乃至図2F(実行環境情報テーブル201)に示すように、制御部102が取得した各構成要素の実行環境情報にID(“CPU ID”、“APサーバID”、“DBMS ID”、“OS ID”、“LANカードID”、“DLL ID”)を付して、当該実行環境情報を構成要素毎のテーブルに格納する。また、図3(a)乃至図3(f)(性能情報テーブル202)に示すように、制御部102が取得した性能情報を構成要素毎のテーブルに格納する。この際、実行環境情報に対応する性能情報には、実行環境情報テーブルで用いられているものと同じIDを付する。これにより、IDをキーにして、各構成要素の実行環境情報及び性能情報を読み出すことができる。例えば、ユーザが、「CPU ID」が“CPU−001”のCPUを選択したとすると、“CPU−001”をキーとして、当該CPUの「CPUネーム」や「キャッシュメモリ容量」等の情報を読み出すことができる。
次に、ソフトウェア解析装置300が行う処理の動作について説明する。ソフトウェア解析装置300は、実効性能測定装置400からソフトウェア解析処理の開始の指示を受け付けると、図9に示すソフトウェア解析処理を開始する。
実効性能測定装置400のユーザにより性能解析対象とするソフトウェアソースコードが指定されると、制御部302は、指定されたソフトウェアソースコードを読み込む(ステップS21)。次に、制御部302は、読み込んだソフトウェアソースコードのネスト構造を解析し、各ネストを抽出する(ステップS22)。例えば、制御部302が、図4のソフトウェアソースコードSW1を読み込んだとすると、制御部302は、ネストa1、ネストb1、ネストc1/c2、ネストd1を抽出する。
次に、制御部302は、各ネストに含まれるソフトウェアソースコードを解析し、各ネストの実行ステップ数を求める(ステップS23)。例えば、ソフトウェアソースコードSW1のネストd1に含まれる実行ステップ数は、20001(=1(繰り返し定義の行)+2(ループ内の行)×10000(繰り返し回数))と求まる。またネストd1の上位のネストc1の実行ステップ数は、ネストd1に含まれる実行ステップ数(20001)と、ネストd1以外に含まれるステップ数(例えば、100)を足して、20101と求まる。
そして、制御部302は、解析した結果を、I/F部304に出力させる。例えば、制御部302は、図5に示すソフトウェアコード情報を、モニタに表示させる。本実施形態のソフトウェアコード情報は、解析したソフトウェアを示す「ソフトウェア」と、当該ソフトウェアに含まれる「ネスト」と、当該ネストの「上位のネスト」及び「下位のネスト」と、当該ネストに含まれる「ステップ数」と、を示す情報から構成される。
実効性能測定装置400は、ユーザにより、I/F部304が性能測定処理の開始の指示を受け付けると、図10に示す性能測定処理を開始する。
まず、制御部402は、実効性能を評価するソフトウェアを指定し、ソフトウェア解析装置300と通信を行い、ソフトウェア解析装置300に図9に示すソフトウェア解析処理を開始させる。そして、制御部402は、ソフトウェア解析装置300が解析したソフトウェアソースコード情報を取得する(ステップS31)。例えば、実効性能を評価するソフトウェアを図4のソフトウェアソースコードSW1とすると、制御部402は、ソフトウェア解析装置300から、図5のソフトウェアソースコード情報303aを取得し、制御部402のRAM等に一時格納する。
次に、制御部402は、I/F部104に評価対象指定スクリプト(図6)を表示させ、ユーザは、キーボート等を用いて評価対象指定スクリプトを編集して、評価対象指定情報を指定する。制御部402は、評価対象指定スクリプトから、評価対象指定情報を取得する(ステップS32)。例えば、ユーザが、ソフトウェアソースコードSW1のネストc1及びCPU−001、AP−001、DB−001、OS−001、LAN−001、及びDLL−001を評価対象指定情報として指定したとすると、それらを制御部402のRAM等に一時格納する。
次に、制御部402は、ステップS32で読み込んだ性能能評価対象情報に記されたIDに基づいて、実行環境データベース200から性能情報を取得する(ステップS33)。例えば、図3に示す、CPU−001、AP−001、DB−001、OS−001、LAN−001、及びDLL−001の性能情報を、制御部402のRAM等に一時格納する。
制御部402は、ソフトウェアソースコード情報と実行環境データベース200から読み込んだ性能情報とから、指定された評価対象指定情報に従い、ソフトウェアの性能を計算する(ステップS34)。例えば、制御部402は、指定されたソフトウェアソースコードSW1のネストc1のステップ数と、CPU−001、AP−001、DB−001、OS−001、LAN−001、及びDLL−001の性能情報を従属変数として、予め用意された回帰式に代入して、ソフトウェアソースコードSW1のネストc1のTATを求める。
そして、制御部402は、I/F部404にソフトウェアの性能測定をした結果(性能測定結果データ、図7)を表示させる。例えば、性能測定結果データは、評価対象とする「ソフトウェア」の種類及び当該ソフトウェアの「ネスト」、ユーザが指定した各実行環境のID、及び当該ソフトウェアの指定されたネストの性能を表す指標(例えば、「TAT」)等を含む。図7の例は、ソフトウェアソースコードSW1のネストc1を、CPU−001、AP−001、DB−001、OS−001、LAN−001、及びDLL−001を含むソフトウェア実行環境で実行した場合の性能(TAT)を示している。
以上説明したように、ソフトウェア実効性能評価システム1によれば、自動的にソフトウェア実行環境の仕様・性能を解析・収集し、データベースに登録する仕組みを提供することにより、複雑な構成や、構成が頻繁に変更される場合にも、素早く性能測定に必要な情報を収集することができ、性能測定にかかる工数を削減することができる。また、実際にソフトウェアを実行環境に配備したり、実行させたりする手間が省けるので、性能測定にかかる工数を削減することができる。さらに、各種実行環境に関する詳細な仕様を把握していなくても性能測定が可能となり、性能測定に必要な学習コストを削減することができる。
また、ソフトウェアソースコードのネスト単位での実効ステップ数を解析し、実際に実行されるネスト単位での性能測定を可能とし、各種条件下での実質的な性能に近いデータを計測することが可能となる。本発明を利用することで、環境ごとに一定の手順に従って性能測定を行うことが可能となるため、性能測定の担当者が変わっても性能測定の方式に違いが出たり、性能測定結果に齟齬が発生したりしにくくすることができる。
本発明のソフトウェア実効性能評価システムは、図1の構成に限られない。例えば、実行環境解析装置100、実行環境データベース200、ソフトウェア解析装置300、及び実効性能測定装置400は同一の装置により実現されてもよい。また、LANの代わりに、各装置がインターネットを介して通信可能であってもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部と、前記実行環境情報を記憶する実行環境情報記憶部と、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、を備えることを特徴とするソフトウェア実効性能評価システム。
(付記2)前記実行環境情報は、ソフトウェアを実行する装置のOS(Operating System)、ハードウェア、ミドルウェア、ネットワーク、又は、ランタイムライブラリの仕様及び性能を示す情報から構成されることを特徴とする付記1に記載のソフトウェア実効性能評価システム。
(付記3)前記ネスト性能情報は、プログラムコードのステップ数を示す情報から構成されることを特徴とする付記1又は2に記載のソフトウェア実効性能評価システム。
(付記4)前記プログラムコードのステップ数は、当該プログラムコードが繰り返し処理を含む場合、繰り返し数を考慮した総ステップ数であることを特徴とする付記3に記載のソフトウェア実効性能評価システム。
(付記5)前記ソフトウェアの実行環境の仕様の変更を検出する仕様変更検出部をさらに備え、前記実行環境情報取得部は、前記仕様変更検出部が仕様の変更を検出した場合に、前記ソフトウェアの実行環境の実行環境情報を取得することを特徴とする付記1乃至4のうちいずれか1つに記載のソフトウェア実効性能評価システム。
(付記6)実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、前記実行環境情報取得部が、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得工程と、前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、を備えることを特徴とするソフトウェア実効性能評価方法。
(付記7)コンピュータを、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部、前記実行環境情報を記憶する実行環境情報記憶部、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、として機能させることを特徴とするプログラム。
1 ソフトウェア実効性能評価システム
100 実行環境解析装置
101 通信部
102 制御部
103 記憶部
104 I/F部
200 実行環境データベース
201 実行環境情報テーブル
202 性能情報テーブル
300 ソフトウェア解析装置
301 通信部
302 制御部
303 記憶部
303a ソフトウェアソースコード情報
304 I/F部
400 実効性能測定装置
401 通信部
402 制御部
403 記憶部
404 I/F部
500 ネットワーク
601〜60n ソフトウェア実行環境

Claims (7)

  1. ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得部と、
    前記実行環境情報を記憶する実行環境情報記憶部と、
    前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、
    前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、
    前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、
    前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、
    を備え
    前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
    とを特徴とするソフトウェア実効性能評価システム。
  2. 前記実行環境情報は、ソフトウェアを実行する装置のOS(Operating System)、ハードウェア、ミドルウェア、ネットワーク、又は、ランタイムライブラリの仕様及び性能を示す情報から構成される
    ことを特徴とする請求項1に記載のソフトウェア実効性能評価システム。
  3. 前記ネスト性能情報は、プログラムコードのステップ数を示す情報から構成される
    ことを特徴とする請求項1又は2に記載のソフトウェア実効性能評価システム。
  4. 前記プログラムコードのステップ数は、当該プログラムコードが繰り返し処理を含む場合、繰り返し数を考慮した総ステップ数である
    ことを特徴とする請求項3に記載のソフトウェア実効性能評価システム。
  5. 前記ソフトウェアの実行環境の仕様の変更を検出する仕様変更検出部をさらに備え、
    前記実行環境情報取得部は、前記仕様変更検出部が仕様の変更を検出した場合に、前記ソフトウェアの実行環境の実行環境情報を取得する
    ことを特徴とする請求項1乃至4のうちいずれか1項に記載のソフトウェア実効性能評価システム。
  6. 実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、
    前記実行環境情報取得部が、ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得工程と、
    前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、
    前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、
    前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、
    選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、
    前記性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、
    を備え
    前記性能取得工程において、前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
    とを特徴とするソフトウェア実効性能評価方法。
  7. コンピュータを、
    ソフトウェアの実行環境を構成する要素の仕様及び性能を示す実行環境情報を所定の周期で取得する実行環境情報取得部、
    前記実行環境情報を記憶する実行環境情報記憶部、
    前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、
    前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、
    前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、
    前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、
    として機能させ
    前記性能取得部は、前記ソフトウェア環境を構成する複数の要素の前記実行環境情報を複合して、前記ソフトウェアの実効性能を示す値を取得する
    ように機能させることを特徴とするプログラム。
JP2010047422A 2010-03-04 2010-03-04 ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム Active JP5240220B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010047422A JP5240220B2 (ja) 2010-03-04 2010-03-04 ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010047422A JP5240220B2 (ja) 2010-03-04 2010-03-04 ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2011181034A JP2011181034A (ja) 2011-09-15
JP5240220B2 true JP5240220B2 (ja) 2013-07-17

Family

ID=44692438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010047422A Active JP5240220B2 (ja) 2010-03-04 2010-03-04 ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5240220B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436608B1 (en) 2015-02-12 2016-09-06 International Business Machines Corporation Memory nest efficiency with cache demand generation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160004583A1 (en) * 2013-02-14 2016-01-07 Nec Corporation System for project management from non-function evaluation, method for project management from non-function evaluation, and program for project management from non-function evaluation
JP2014241021A (ja) 2013-06-11 2014-12-25 株式会社日立製作所 ソフトウェア評価装置および方法
CN112765016B (zh) * 2021-01-08 2024-03-22 天翼数字生活科技有限公司 一种开源软件可用性判定方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3335488B2 (ja) * 1994-11-14 2002-10-15 株式会社日立製作所 性能予測装置及び方法
JPH08202668A (ja) * 1995-01-27 1996-08-09 Hitachi Eng Co Ltd 性能評価装置と評価方法
JPH11296416A (ja) * 1998-04-14 1999-10-29 Nippon Steel Corp コンピュータシステムの負荷分析装置及び負荷分析方法並びに記憶媒体
JP2000020354A (ja) * 1998-07-07 2000-01-21 Hitachi Ltd 実行ステップ数の編集装置
JP3961787B2 (ja) * 2000-06-12 2007-08-22 富士通株式会社 オブジェクト指向プログラム性能改善支援装置、記録媒体及びプログラム
JP2002229818A (ja) * 2001-02-01 2002-08-16 Hitachi Ltd プログラム実行時間解析方法およびその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436608B1 (en) 2015-02-12 2016-09-06 International Business Machines Corporation Memory nest efficiency with cache demand generation

Also Published As

Publication number Publication date
JP2011181034A (ja) 2011-09-15

Similar Documents

Publication Publication Date Title
EP2808790B1 (en) Migration assessment for cloud computing platforms
US20100180255A1 (en) Programmable framework for automatic tuning of software applications
Brosig et al. Automated extraction of architecture-level performance models of distributed component-based systems
CN106662986B (zh) 优化的浏览器渲染过程
CN104025048B (zh) 用于估计软件产品在操作环境中的安装时间的方法和系统
KR20060061759A (ko) 트랜잭션 기반 성능 모델을 자동 검증 및 캘리브레이션하기위한 컴퓨터 구현 방법
JP2017506400A (ja) クラウドリリースパイプラインの診断および最適化
US10824541B1 (en) System and method for test data fabrication
JP5240220B2 (ja) ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム
KR101916294B1 (ko) 클라우드 데이터 센터 분석을 위한 기술
CN103150250A (zh) 应用程序性能检测系统和应用程序性能检测方法
KR100460536B1 (ko) 컴포넌트의 성능 측정 결과를 이용한 연관 컴포넌트 추천장치 및 방법
US11436133B2 (en) Comparable user interface object identifications
CN105843731B (zh) 计算机系统及通过计算机系统执行的性能监控方法
Barve et al. Fecbench: A holistic interference-aware approach for application performance modeling
JP6119767B2 (ja) 対処方法作成プログラム、対処方法作成方法、及び情報処理装置
US9064038B2 (en) Method and system for combining multiple benchmarks
CN108363660A (zh) 一种测试程序生成方法和装置
Bader Comparison of time series databases
CN117234859B (zh) 一种性能事件监控方法、装置、设备和存储介质
Ferme et al. Performance comparison between BPMN 2.0 workflow management systems versions
KR101039874B1 (ko) 정보통신 통합플랫폼 테스트 시스템
CN115017018A (zh) 服务器的性能测试方法、设备和计算机可读存储介质
Marum et al. Unified library for dependency graph reactivity on web and desktop user interfaces: Addendum
CN109800158A (zh) 基于区块链的兼容性测试方法、装置及电子设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150