(57)【特許請求の範囲】
【請求項１】
複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出部と、
前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出部と、
前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成部とを有する情報処理装置。
【請求項２】
前記効果算出部は、
前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果を第１の速度性能改善効果として算出するとともに、前記削除可能記述の単位で、前記削除可能記述が含まれている実行経路で前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果を第２の速度性能改善効果として算出し、
前記書換え例生成部は、
前記第１の速度性能改善効果と前記第２の速度性能改善効果とに基づき、前記ソースコードの書換え例を生成する請求項１に記載の情報処理装置。
【請求項３】
前記書換え例生成部は、
生成した前記ソースコードの書換え例を出力する請求項１に記載の情報処理装置。
【請求項４】
前記書換え例生成部は、
前記ソースコードの複数の書換え例を生成する請求項１に記載の情報処理装置。
【請求項５】
前記書換え例生成部は、
生成した前記ソースコードの前記複数の書換え例を、前記速度性能改善効果が大きい順に出力する請求項４に記載の情報処理装置。
【請求項６】
前記記述抽出部は、
前記実行経路の単位で、前記ソースコードに含まれる変数の値域を解析し、解析した前記変数の値域に基づき、前記削除可能記述を抽出する請求項１に記載の情報処理装置。
【請求項７】
コンピュータが、複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出し、
前記コンピュータが、前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出し、
前記コンピュータが、前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する情報処理方法。
【請求項８】
複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出処理と、
前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出処理と、
前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成処理とをコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアプログラム（以下、単にソフトウェアともいう）の性能改善に関する。
【背景技術】
【０００２】
ソフトウェアの開発の終盤になってからソフトウェアの実行速度性能に問題点が見つかることがある。
ソフトウェアの開発現場では、プロファイラを使用してソフトウェアの実行速度を実測し、実測結果からボトルネックを確認し、確認したボトルネックを解消する方法が一般的である。しかしながら、ソフトウェアが実行できる段階までソフトウェアが開発されていなければ、この方法を行うことができない。
このため、開発のより前の段階でソフトウェアの実行速度性能を評価し、開発の手戻りを削減することが求められている。【０００３】
特許文献１では、まだ実行環境が確立されていない開発中のソフトウェアプログラムに対して静的解析を実施し、ソフトウェアプログラムのロジックから実行速度性能を予測し、改善箇所を自動的に提案する方法が開示されている。【０００４】
また、特許文献２では、ソフトウェアプログラムのロジックを任意のブロックに切り分け、そのブロックの出力に影響を与えない処理を削除候補として提示する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１７９４８８号公報
【特許文献２】特開２００８−１７６６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、静的解析によってソフトウェアプログラムの実行速度性能を予測し、ボトルネックとなる箇所を予測することが可能である。しかし、特許文献１の技術では、予測されたボトルネックを解消するための具体的な方法がソフトウェア開発者に提示されない。
ソフトウェアプログラムにおけるボトルネックをどのようにして解消するかは、前述したプロファイラを用いた場合においても、特許文献１の技術を用いた場合においても、ソフトウェア開発者の知識や経験に基づいた思いつきに頼らざるを得ない。
このため、特許文献１の技術では、ソフトウェア開発者はボトルネックを解消するための検討に多くの時間を割かざるを得ない。【０００７】
また、特許文献２の技術は、ソフトウェアプログラムに、当該ソフトウェアプログラムに求められる機能を実行する上で必ずしも必要のない記述が含まれる場合に、実行速度性能の改善をもたらす方法として、当該記述を削除することをソフトウェア開発者に提案する。つまり、特許文献２の技術は、ソフトウェアプログラムに、機能を実行する上で必ずしも必要のない記述が含まれる場合にのみ有効である。
しかし、ソフトウェアプログラムに、機能上必ずしも必要のない記述、換言すると、実行速度を悪化させるような非効率な記述が含まれていることはまれである。このため、このような非効率な記述が存在することを前提にした特許文献２の技術を用いて、実際のソフトウェアプログラム開発において効果的に実行速度を改善できるケースは少ない。【０００８】
本発明は、実行結果に影響を与えない範囲で、実行速度性能を改善するための具体的な方法をソフトウェア開発者に提示することを主な目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、
複数の実行経路が存在するソースコードを解析し、実行経路の単位で、削除しても実行結果に影響を与えない前記ソースコード内の記述を削除可能記述として抽出する記述抽出部と、
前記実行経路の単位で、前記削除可能記述を前記ソースコードから削除した場合の前記ソースコードの実行速度を改善する効果である速度性能改善効果を算出する効果算出部と、
前記速度性能改善効果に基づき、いずれかの削除可能記述の前記ソースコードからの削除を伴う前記ソースコードの書換え例を生成する書換え例生成部とを有する。
【発明の効果】
【００１０】
本発明では、速度性能改善効果に基づき、いずれかの削除可能記述のソースコードからの削除を伴うソースコードの書換え例を生成する。このため、実行結果に影響を与えない範囲で、実行速度性能を改善する具体的なソースコードの例をソフトウェア開発者に提示することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る情報処理装置の機能構成例を示す図。
【図２】実施の形態１に係る入力解析部の動作手順を示すフローチャート。
【図３】実施の形態１に係る出力影響解析部の動作手順を示すフローチャート。
【図４】実施の形態１に係る処理ブロックの例を示す図。
【図５】実施の形態１に係る削除可能記述を削除した後の処理ブロックの例を示す図。
【図６】実施の形態１に係る処理時間見積もり部の動作手順を示すフローチャート。
【図７】実施の形態１に係る改善効果見積もり部の動作手順を示すフローチャート。
【図８】実施の形態１に係る書換え例生成部の動作手順を示すフローチャート。
【図９】実施の形態１に係る情報処理装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
本実施の形態では、実行結果に影響を与えない範囲で、実行速度性能を改善する具体的なソースコードの例をソフトウェア開発者に提示することができる情報処理装置を説明する。
以下、本実施の形態に係る情報処理装置を、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
【００１３】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る情報処理装置１００の機能構成例を示す。
また、図９は、本実施の形態に係る情報処理装置１００のハードウェア構成例を示す。
【００１４】
先ず、図９を参照して、情報処理装置１００のハードウェア構成を説明する。
本実施の形態に係る情報処理装置１００は、コンピュータである。
情報処理装置１００は、ハードウェアとして、プロセッサ９０１及び記憶装置９０２を備える。
また、情報処理装置１００は、機能構成として、記述抽出部１０１、効果算出部１０２及び書換え例生成部１０３を備える。
記憶装置９０２には、記述抽出部１０１、効果算出部１０２及び書換え例生成部１０３の機能を実現するプログラムが記憶されている。
そして、プロセッサ９０１がこれらプログラムを実行して、後述する記述抽出部１０１、効果算出部１０２及び書換え例生成部１０３の動作を行う。
図９では、プロセッサ９０１が記述抽出部１０１、効果算出部１０２及び書換え例生成部１０３の機能を実現するプログラムを実行している状態を模式的に表している。
なお、情報処理装置１００により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
【００１５】
次に、図１を参照して、情報処理装置１００の機能構成を説明する。
情報処理装置１００は、図１に示すように、機能構成として記述抽出部１０１と効果算出部１０２と書換え例生成部１０３で構成される。
【００１６】
記述抽出部１０１は、ソフトウェアプログラムのソースコード２００を取得する。ソースコード２００には、複数の実行経路が存在する。
実行経路とは、ソースコード２００が実行される際にトレースされる経路である。例えば、条件分岐処理又はループ処理により複数の実行経路が形成される。
そして、記述抽出部１０１は、ソースコード２００を静的解析し、実行経路の単位で、削除しても実行結果に影響を与えないソースコード２００内の記述を削除可能記述として抽出する。
より具体的には、記述抽出部１０１は、実行経路の単位で、ソースコード２００に含まれる変数の値域を解析し、解析した変数の値域に基づき、削除可能記述を抽出する。
なお、記述抽出部１０１により行われる動作は、記述抽出処理に相当する。
記述抽出部１０１は、入力解析部１０１１と出力影響解析部１０１２で構成される。
入力解析部１０１１は、ソースコード２００に含まれる変数の値域を解析する。出力影響解析部１０１２は、入力解析部１０１１により解析された変数の値域に基づき、削除可能記述を抽出する。
なお、入力解析部１０１１と出力影響解析部１０１２の動作の詳細は後述する。
【００１７】
効果算出部１０２は、実行経路の単位で、削除可能記述をソースコード２００から削除した場合のソースコード２００の実行速度を改善する効果である速度性能改善効果を算出する。
効果算出部１０２は、より具体的には、実行経路の単位で、削除可能記述をソースコード２００から削除した場合のソースコード２００の実行速度を改善する効果を第１の速度性能改善効果として算出する。更に、効果算出部１０２は、削除可能記述の単位で、削除可能記述が含まれている実行経路で削除可能記述をソースコード２００から削除した場合のソースコード２００の実行速度を改善する効果を第２の速度性能改善効果として算出する。
効果算出部１０２により行われる動作は、効果算出処理に相当する。
効果算出部１０２は、処理時間見積もり部１０２１と改善効果見積もり部１０２２で構成される。
処理時間見積もり部１０２１は、ソースコード２００に含まれる処理ごとに処理時間を見積もる。処理とは、ソースコード２００に含まれる演算処理である。処理時間とは、処理の実行に要する時間である。
改善効果見積もり部１０２２は、処理時間見積もり部１０２１による処理時間の見積もり結果に基づき、速度性能改善効果を算出する。
なお、処理時間見積もり部１０２１と改善効果見積もり部１０２２の動作の詳細は後述する。
【００１８】
書換え例生成部１０３は、効果算出部１０２により算出された速度性能改善効果に基づき、いずれかの削除可能記述のソースコード２００からの削除を伴うソースコード２００の書換え例を生成する。
より具体的には、書換え例生成部１０３は、効果算出部１０２により算出された第１の速度性能改善効果と第２の速度性能改善効果とに基づき、ソースコード２００の書換え例を生成する。
書換え例生成部１０３は、複数の書換え例を生成してもよい。
そして、書換え例生成部１０３は、生成したソースコード２００の書換え例を出力する。書換え例生成部１０３は、複数の書換え例を生成した場合は、生成した複数の書換え例を、速度性能改善効果が大きい順に出力する。ソフトウェア開発者３００は、複数の書換え例を、速度性能改善効果が大きい順に確認することができる。
書換え例生成部１０３により行われる動作は、書換え例生成処理に相当する。
書換え例生成部１０３の動作の詳細は後述する。
【００１９】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る入力解析部１０１１の動作を、図２のフローチャートを参照して説明する。
【００２０】
手順Ｓ２０１において、入力解析部１０１１は、ソースコード２００を取得する。なお、ソースコード２００の入力手段は特に限定しない。入力解析部１０１１は、取得したソースコード２００を例えば記憶装置９０２に格納する。
【００２１】
手順Ｓ２０２において、入力解析部１０１１は、手順Ｓ２０１で取得したソースコードを静的に解析し、入力解析部１０１１は、ソースコード２００に含まれる複数の実行経路を抽出する。入力解析部１０１１は、ソースコード２００に含まれる全ての実行経路を抽出してもよいし、特定の条件に合致する一部の実行経路のみを抽出するようにしてもよい。
そして、入力解析部１０１１は、実行経路の単位で、実行経路内の条件分岐処理や演算処理に基づき、実行経路内で使用される変数の値域を解析する。
なお、実行経路内において、変数の値域は、処理を進めるに従い変動する場合がある。このように変数の値域が変動する場合は、入力解析部１０１１は、実行経路内でいずれの処理を実行する際に変数の値域が変動するかを解析する。
【００２２】
手順Ｓ２０３において、入力解析部１０１１は、手順Ｓ２０２の解析結果が示される変数値域解析結果情報を生成する。具体的には、変数値域解析結果情報には、実行経路ごとに、変数の値域と値域の変動箇所とが示される。
そして、入力解析部１０１１は、生成した変数値域解析結果情報を記憶装置９０２に格納する。なお、入力解析部１０１１は、記憶装置９０２以外の記憶媒体に変数値域解析結果情報を格納してもよい。
【００２３】
次に、本実施の形態に係る出力影響解析部１０１２の動作を、図３のフローチャートを参照して説明する。
【００２４】
手順Ｓ３０１において、出力影響解析部１０１２は、手順Ｓ２０３で生成された変数値域解析結果情報を取得する。出力影響解析部１０１２は、例えば、記憶装置９０２から変数値域解析結果情報を読み出す。
【００２５】
手順Ｓ３０２において、出力影響解析部１０１２は、変数値域解析結果情報に基づき、実行経路ごとに、変数の値域が変化しない処理ブロックを抽出する。処理ブロックとは、ソースコード２００内の部分領域である。
【００２６】
手順Ｓ３０３において、出力影響解析部１０１２は、手順Ｓ３０２で抽出した変数の値域が変化しない処理ブロックの中で、その変数の値域であれば、処理ブロックの出力に影響を与えない記述を抽出する。手順Ｓ３０３で抽出される記述は削除可能記述である。
【００２７】
ここで、図４に示すソースコードの例を用いて、処理ブロックの出力に影響を与えない記述の抽出例を説明する。
図４は、プログラミング言語であるＣ言語によって記述されたソースコード内の処理ブロックの例を示す。
【００２８】
ソースコード内のある実行経路において図４の１行目の関数呼び出しが行われるものとする。
当該実行経路にて図４の１行目の関数呼出しが行われた時点での変数ｘの値域が０以上１００未満であると変数値域解析結果情報に示されている場合は、４行目の条件判定の結果は常に真となる。
そのため、４行目から８行目の記述を削除したとしても、この実行経路においては、実行結果は変わらない。
処理時間見積もり部１０２１は、この実行経路については、４行目から８行目の記述を削除可能記述として抽出する。
【００２９】
また、別のある実行経路にて図４の１行目の関数呼出しがなされた時点での変数ｘの値域が８０以上かつ９０以下、変数ｙの値域が２以上かつ４以下であると変数値域解析結果情報に示されている場合は、４行目、５行目及び９行目の条件判定の結果は常に真となる。
そのため、４行目、５行目及び９行目の記述を削除したとしても、この実行経路においては、実行結果は変わらない。
また、４行目、５行目及び９行目の記述を削除できる場合は、６行目の記述も削除可能である。
処理時間見積もり部１０２１は、この実行経路については、４行目、５行目、６行目及び９行目の記述を削除可能記述として抽出する。
【００３０】
次に、図３のフローチャートに戻り、手順Ｓ３０４において、出力影響解析部１０１２は、手順Ｓ３０３での抽出結果を示す記述抽出結果情報を生成する。具体的には、記述抽出結果情報には、実行経路ごとに削除可能記述が示される。
そして、出力影響解析部１０１２は、生成した記述抽出結果情報を記憶装置９０２に格納する。なお、出力影響解析部１０１２は、記憶装置９０２以外の記憶媒体に記述抽出結果情報を格納してもよい。
【００３１】
次に、本実施の形態に係る処理時間見積もり部１０２１の動作を、図６のフローチャートを参照して説明する。
【００３２】
手順Ｓ６０１において、処理時間見積もり部１０２１はソースコード２００を取得する。なお、ソースコード２００の入力手段は特に限定しない。処理時間見積もり部１０２１は、例えば、記憶装置９０２からソースコード２００を読み出す。
【００３３】
手順Ｓ６０２において、処理時間見積もり部１０２１は、ソースコード２００を静的に解析し、ソースコード２００に含まれる処理について、各処理の処理時間と、各実行経路における各処理の実行頻度を見積もる。
処理とは、前述したように、ソースコード２００に含まれる演算処理であり、例えば、図４の１行目〜６行目、９行目、１０行目、１２行目の各行に定義される演算処理である。
なお、各処理の処理時間の見積もり及び各処理の実行頻度の見積もりは、例えば、特許文献１で開示されている手順により実現される。但し、処理時間見積もり部１０２１は、他の手順により、各処理の処理時間の見積もり及び各処理の実行頻度の見積もりを行ってもよい。
【００３４】
手順Ｓ６０３において、処理時間見積もり部１０２１は、手順Ｓ６０２での見積り結果が示される実行時間情報を生成する。具体的には、実行時間情報には、各処理の処理時間と、実行経路ごとの各処理の実行頻度とが示される。
そして、処理時間見積もり部１０２１は、生成した実行時間情報を記憶装置９０２に格納する。なお、処理時間見積もり部１０２１は、記憶装置９０２以外の記憶媒体に実行時間情報を格納してもよい。
【００３５】
次に、本実施の形態に係る改善効果見積もり部１０２２の動作を、図７のフローチャートを参照して説明する。
【００３６】
手順Ｓ７０１において、改善効果見積もり部１０２２は、記述抽出結果情報と実行時間情報を取得する。改善効果見積もり部１０２２は、例えば、記憶装置９０２から記述抽出結果情報と実行時間情報を読み出す。
【００３７】
手順Ｓ７０２において、改善効果見積もり部１０２２は、第１の速度性能改善効果を算出する。つまり、改善効果見積もり部１０２２は、実行経路の単位で、削除可能記述をソースコード２００から削除した場合のソースコード２００の実行速度を改善する効果（第１の速度性能改善効果）を算出する。
より具体的には、改善効果見積もり部１０２２は、記述抽出結果情報から、削除可能記述と、削除可能記述に対応する実行経路を取得する。次に、改善効果見積もり部１０２２は、実行経路ごとに、当該実行経路に含まれる処理の処理時間と実行頻度を実行時間情報から取得する。そして、改善効果見積もり部１０２２は、実行経路ごとに、当該実行経路に含まれる処理について（処理時間×実行頻度）の計算を行い、当該実行経路に含まれる全ての処理の（処理時間×実行頻度）の値の総和（以下、総和時間Ａという）を求める。また、改善効果見積もり部１０２２は、実行経路ごとに、当該実行経路に含まれる、削除可能記述に対応する処理について（処理時間×実行頻度）の計算を行い、削除可能記述に対応する全ての処理の（処理時間×実行頻度）の値の総和（以下、総和時間Ｂという）を求める。そして、改善効果見積もり部１０２２は、総和時間Ａと総和時間Ｂとを用いて、第１の速度性能改善効果を算出する。例えば、改善効果見積もり部１０２２は、（総和時間Ａ−総和時間Ｂ）÷（総和時間Ａ）により、第１の速度性能改善効果を算出する。
改善効果見積もり部１０２２は、上記手順を複数の実行経路に対して繰り返して、複数の実行経路の第１の速度性能改善効果を算出する。つまり、改善効果見積もり部１０２２は、各実行経路に含まれる、変数の値域の変動箇所ごとに区切られた処理ブロックについて、削除可能記述に対応する処理を削除した場合の第１の速度性能改善効果を算出する。
【００３８】
手順Ｓ７０３において、改善効果見積もり部１０２２は、第２の速度性能改善効果を算出する。つまり、改善効果見積もり部１０２２は、削除可能記述の単位で、削除可能記述が含まれている実行経路で削除可能記述をソースコード２００から削除した場合のソースコード２００の実行速度を改善する効果（第２の速度性能改善効果）を算出する。
より具体的には、改善効果見積もり部１０２２は、削除可能記述ごとに、当該削除可能記述が含まれる各実行経路での当該削除可能記述に対応する処理について（処理時間×実行頻度）の計算を行い、当該削除可能記述が含まれる全ての実行経路の（処理時間×実行頻度）値の総和（以下、総和時間Ｃという）を求める。また、改善効果見積もり部１０２２は、削除可能記述ごとに、当該削除可能記述が含まれる全ての実行経路の総和時間Ａを合算する（合算により得られた時間を、以下、総和時間Ｄという）。そして、改善効果見積もり部１０２２は、総和時間Ｃと総和時間Ｄとを用いて、第２の速度性能改善効果を算出する。例えば、改善効果見積もり部１０２２は、（総和時間Ｄ−総和時間Ｃ）÷（総和時間Ｄ）により、第２の速度性能改善効果を算出する。
【００３９】
手順Ｓ７０４において、改善効果見積もり部１０２２は、第１の速度性能改善効果と第２の速度性能改善効果とが示される速度性能改善効果情報を生成する。速度性能改善効果情報では、実行経路ごとに第１の速度性能改善効果が示され、削除可能記述ごとに第２の速度性能改善効果が示される。
そして、改善効果見積もり部１０２２は、生成した速度性能改善効果情報を記憶装置９０２に格納する。なお、改善効果見積もり部１０２２は、記憶装置９０２以外の記憶媒体に速度性能改善効果情報を格納してもよい。
【００４０】
次に、本実施の形態に係る書換え例生成部１０３の動作を、図８のフローチャートを参照して説明する。
【００４１】
手順Ｓ８０１において、書換え例生成部１０３は、ソースコード２００と速度性能改善効果情報を取得する。書換え例生成部１０３は、例えば、記憶装置９０２からソースコード２００と速度性能改善効果情報を読み出す。
【００４２】
手順Ｓ８０２において、書換え例生成部１０３は、第１の速度性能改善効果と第２の速度性能改善効果とに基づき、いずれかの削除可能記述の削除を伴うソースコード２００の書換え例を生成する。
書換え例生成部１０３は、例えば、第１の速度性能改善効果が最大となるソースコード２００の書換え例、第２の速度性能改善効果が最大となるソースコード２００の書換え例、第１の速度性能改善効果と第２の速度性能改善効果との総和が最大となるソースコード２００の書換え例を生成する。
【００４３】
手順Ｓ８０３において、書換え例生成部１０３は、手順Ｓ８０２で生成したソースコード２００の書換え例を出力するとともに、ソースコード２００の書換え例ごとに、書換え対象の実行経路と、速度性能改善効果を出力する。書換え例生成部１０３は、例えば、速度性能改善効果が高い順にソースコード２００の書換え例を出力する。なお、ソースコード２００の書換え例の出力順序は任意に設定することができる。
【００４４】
図５は、ソフトウェア開発者に提示されるソースコード２００の書換え例を示す。
図５は、図４の処理ブロックから３行目〜９行目、１１行目が削除された書き換え例である。図５の例では、図４の４行目、５行目及び９行目に記載の３つの条件判定処理と、６行目に記載の１つの積算処理及び１つの代入処理を削減することが可能である。
【００４５】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態によれば、ソースコードの変更におけるプログラムへの影響をユーザ（ソフトウェア開発者）自身が考慮することなく、ソフトウェアプログラムの実行速度性能を改善するための具体的なソースコード書換え案をユーザが得ることができる。このため、ソフトウェアプログラムの実行速度性能の改善を効率的に実施することが可能である。
【符号の説明】
【００４６】
１００  情報処理装置、１０１  記述抽出部、１０２  効果算出部、１０３  書換え例生成部、１０１１  入力解析部、１０１２  出力影響解析部、１０２１  処理時間見積もり部、１０２２  改善効果見積もり部、２００  ソースコード、３００  ソフトウェア開発者、９０１  プロセッサ、９０２  記憶装置。
【図１】
0006548836.tif 000002
【図２】
0006548836.tif 000003
【図３】
0006548836.tif 000004
【図４】
0006548836.tif 000005
【図５】
0006548836.tif 000006
【図６】
0006548836.tif 000007
【図７】
0006548836.tif 000008
【図８】
0006548836.tif 000009
【図９】
0006548836.tif 000010