JP4957017B2 - 性能チューニング方法及び装置、プログラム及び記憶媒体 - Google Patents

性能チューニング方法及び装置、プログラム及び記憶媒体 Download PDF

Info

Publication number
JP4957017B2
JP4957017B2 JP2006056632A JP2006056632A JP4957017B2 JP 4957017 B2 JP4957017 B2 JP 4957017B2 JP 2006056632 A JP2006056632 A JP 2006056632A JP 2006056632 A JP2006056632 A JP 2006056632A JP 4957017 B2 JP4957017 B2 JP 4957017B2
Authority
JP
Japan
Prior art keywords
measurement
performance
program
environment
measurement environment
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
JP2006056632A
Other languages
English (en)
Other versions
JP2007233855A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006056632A priority Critical patent/JP4957017B2/ja
Priority to US11/506,962 priority patent/US7941787B2/en
Publication of JP2007233855A publication Critical patent/JP2007233855A/ja
Application granted granted Critical
Publication of JP4957017B2 publication Critical patent/JP4957017B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • G06F11/3461Trace driven simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、性能チューニング方法及び装置、プログラム及び記憶媒体に係り、特に異なる実行性能の測定方法を用いて測定対象となるターゲットプログラムの性能をチューニングする性能チューニング方法及び装置、コンピュータにそのような性能チューニング方法による性能チューニングを行わせるプログラム、及びそのようなプログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
一般的に、クロス開発環境では、シミュレータやエミュレータ等を介して実行性能に関する情報を取得してプログラムのチューニングを行う。プログラムの実行性能の測定方法は、プログラムの実行環境に応じて異なる場合が多い。
例えば、エミュレータであるサンプラによりプログラム全体を測定し、関数毎の占有率や参照回数から、チューニング対象となる部分の絞り込みが行われる。又、絞り込んだ部分のより詳細な実行性能に関する情報を、サンプラ以外の実機稼動状況を表示するエミュレータであるパフォーマンスアナライザ(PA:Performance Analyzer)やシミュレータである高精度のプロファイラ等を用いて取得することで、チューニングポイントを絞り込むことも行われる。これにより、効果的で効率的なプログラムの性能チューニングを行うことができる。
サンプラの実行環境、PAの実行環境、プロファイラの実行環境は、夫々独立して存在する。このため、測定対象となるターゲットプログラムの実行制御は、各プロジェクトに対して設定する必要がある。
図1は、従来の性能チューニング方法の一例を説明するフローチャートである。ここでは説明の便宜上、測定環境として、プログラムの実行性能の測定方法がプログラムの実行環境に応じて異なるサンプラ、プロファイラ及びPAが選択可能な場合について説明する。サンプラ、プロファイラ及びPAは、プログラムの実行性能を測定するツールである。
ステップS1は、プログラムの実行性能の測定環境を選択し、選択された測定環境がサンプラであれば処理はステップS2−1へ進み、プロファイラであれば処理はステップS2−2へ進み、PAであれば処理はステップS2−3へ進む。ステップS2−2〜S7−2及びステップS2−3〜S7−3は、基本的にはステップS2−1〜S7−1と同様の処理を行うので、以下の説明では、最初に選択された測定環境がサンプラであり、次回に選択された測定環境がPAである場合について説明する。
ステップS2−1は、サンプラによりプログラムの実行性能を測定するプロジェクトを作成する。ステップS3−1は、サンプラの測定範囲(即ち、測定環境)をソース埋め込みの形で設定する場合に行われ、測定範囲を設定する。ステップS4−1は、測定ターゲットのビルド及びロードを行う。ステップS5−1は、ステップS3−1が実行されない場合に実行され、サンプラの測定範囲(即ち、測定環境)を設定する。ステップS6−1は、設定された測定範囲でサンプラによる測定を実行する。ステップS7−1は、測定の結果得られるプログラムの性能情報を取得し、処理はステップS8へ進む。
ステップS8は、取得された性能情報が所望の性能以上であり十分であるか否かを判定する。ステップS8の判定結果がYESであると、ステップS9は、プログラムの性能チューニングを行うか否かを判定する。ステップS9の判定結果がYESであると、ステップS10は、オペレータからの指示に基づいてプログラムをチューニングする。ステップS8の判定結果がNO、或いは、ステップS10の後、ステップS11は、他の測定環境でプログラムの実行性能を測定するか否かを判定し、判定結果がYESであると、処理はステップS1へ戻る。ステップS9又はS11の判定結果がNOであると、処理は終了する。
図2〜図5は、図1に示すステップS2−1,S3−1,S5−1,S7−1を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
図2中、「+Sampler.PRJ」はステップS2−1において作成されたプロジェクトを示し、ここでは統合開発環境(IDE:Integrated Development Environment)中に登録されているものとする。又、「-start_sampler.s」、「-sampler.lib」はサンプラによる測定で用いる測定用のソース、ライブラリである。更に、「-test1.c」、「-test2.c」、「-test3.c」はユーザアプリケーションである。IDEでは、上記の場合はプロジェクト制御によりサンプラ、PA又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はPA選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得される。
図3中、太線で囲まれた部分は、ステップS3−1においてソース埋め込みの形で設定されるサンプラの測定範囲を示す。
図4中、太線で囲まれた部分は、ステップS5−1においてソース埋め込みの以外の形で設定されるサンプラの測定範囲を示す。特にプロファイラ等の場合のように、ツールにより「-start_sampler()」等のようにソース埋め込みを行わなくても良い場合がある。このような場合には、例えば図4に示す「○」でブレーク(break)してサンプラをオンにしてプログラムの実行性能の測定を行い、次の「○」でブレークすることで「○」と「○」の間を測定可能な測定範囲として設定することができる。
図5に示す例では、ステップS7−1で取得されるプログラムの性能情報は、各関数名に対する呼出し数及び占有率を含む。図5に示す如きプログラムの性能情報から、高コストの関数を特定することができ、例えば高コスト関数「func11()」に対しては別の測定環境でプログラムの実行性能を測定する。ここでは説明の便宜上、ステップS1において高コスト関数「func11()」に対してPAが測定環境として選択されるものとする。
図6〜図10は、図1に示すステップS2−3,S3−3,S5−3,S7−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。
図6中、「+PA.PRJ」はステップS2−3において作成されるプロジェクトを示し、「-start_pa.s」はPAによる測定で用いる測定用のソースである。又、「-test1.c」、「-test2.c」、「-test3.c」はユーザアプリケーションである。
図7中、太線で囲まれた部分は、ステップS3−1においてソース埋め込みの形で設定されたサンプラの測定範囲なので、ステップS3−3において先ず削除する。図8中、太線で囲まれた部分は、ステップS3−3においてソース埋め込みの形で設定されるPAの測定範囲を示す。ここでは、高コスト関数「func11()」に対してPAで測定を行うために、専用の関数が埋め込まれる。
図9中、太線で囲まれた部分は、ステップS5−3においてソース埋め込みの以外の形で設定されるPAの測定範囲を示す。
図10に示す例では、ステップS7−3で取得されるプログラムの性能情報は、ILP(並列度)、I$−Miss、D$-Miss及びストールを含む性能指標からなる。従って、高コストの関数「func11()」の性能指標を特定することができる。
従来の性能チューニング方法では、プログラムの実行性能を測定する際、異なる測定環境(即ち、測定方法)を用いる場合や測定範囲を絞り込む測定を複数回行う場合に、オペレータはその都度測定範囲を設定し直すという煩雑な操作を行う必要があった。
又、例えばサンプラでの測定時に設定した設定情報をPAでの測定時に流用することが考えられるが、先に測定を行うサンプラでの測定結果が確定して初めて次に行うPAでの測定時の測定範囲が特定される場合等があるため、異なる測定方法(即ち、異なる測定環境)での測定時に設定した設定情報をそのまま流用することはできない。
従って、従来の性能チューニング方法では、プログラムの性能チューニングを効率良く行うことができないという問題があった。
そこで、本発明は、プログラムの性能チューニングの効率を向上可能な性能チューニング方法及び装置、プログラム及び記憶媒体を提供することを目的とする。
上記の課題は、プログラムの実行性能をチューニングする性能チューニング方法であって、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定ステップと、該性能情報に応じて該プログラムの実行性能をチューニングするチューニングステップとを含むことを特徴とする性能チューニング方法によって達成できる。
上記の課題は、上記性能チューニング方法の各ステップをコンピュータに実行させることを特徴とするプログラムによっても達成できる。
上記の課題は、上記プログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体によっても達成できる。
上記の課題は、上記性能チューニング方法を用いることを特徴とするプログラム開発方法によっても達成できる。
上記の課題は、プログラムの実行性能をチューニングする性能チューニング装置であって、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定手段と、該性能情報に応じて該プログラムの実行性能をチューニングするチューニング手段とを含むことを特徴とする性能チューニング装置によっても達成できる。
本発明によれば、プログラムの性能チューニングの効率を向上可能な性能チューニング方法及び装置、プログラム及び記憶媒体を実現することができる。
本発明では、プログラムの実行性能を測定する際に設定された測定条件と、測定の結果取得された性能情報とを、異なる測定環境(即ち、測定方法)の候補に対してリンク可能に管理する。これにより、次に異なる測定環境(即ち、測定方法)を用いてプログラムの実行性能を測定する場合、測定範囲を絞り込む測定を複数回行う場合や先に行う測定の結果が確定しないと次に行う測定の測定条件が特定できない場合等であっても、次に行う測定の測定条件は自動的に設定できる。
例えば、統合開発環境(IDE)では、プロジェクト制御によりサンプラ、パフォーマンスアナライザ(PA)又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はPA選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
つまり、異なる測定環境間で、測定条件と性能情報を共有することができる。
従って、オペレータは測定環境が変わる度に測定範囲等の測定条件を設定し直すという煩雑な操作を行う必要がない。又、測定環境が変わっても、チューニングポイントを逃すことなく、測定環境の候補を確実に抽出することができる。このため、効率が良く、且つ、効果的なチューニングを行うことができる。
以下に、本発明になる性能チューニング方法及び装置、プログラム及び記憶媒体の各実施例を、図11以降と共に説明する。
本発明になる性能チューニング装置の一実施例は、本発明になる性能チューニング方法の一実施例、本発明になるプログラムの一実施例及び本発明になる記憶媒体の一実施例を用いる。本実施例では、本発明がパーソナルコンピュータ(PC)等のコンピュータシステムに適用されている。図11は、本実施例において本発明が適用されるコンピュータシステムを示す斜視図である。
図11に示すコンピュータシステム100は、CPUやディスクドライブ等を内蔵した本体部101、本体部101からの指示により表示画面102a上に画像を表示するディスプレイ102、コンピュータシステム100に種々の情報を入力するためのキーボード103、ディスプレイ102の表示画面102a上の任意の位置を指定するマウス104及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム105を有する。ディスプレイ102が表示部を構成し、キーボード103及びマウス104は入力部を構成する。
ディスク110等の可搬型記録媒体に格納されるか、モデム105等の通信装置を使って他のコンピュータシステムの記録媒体106からダウンロードされる、コンピュータシステム100に少なくとも性能チューニング機能を持たせるプログラム(性能チューニングソフトウェア)の本実施例は、コンピュータシステム100に入力されてコンパイルされる。プログラムの本実施例は、コンピュータシステム100(即ち、後述するCPU201)をCAD機能を有するCAD装置の本実施例として動作させる。記憶媒体の本実施例は、プログラムの本実施例を格納した、例えばディスク110等のコンピュータ読み取り可能な記録媒体からなる。記録媒体の本実施例は、ディスク110、ICカードメモリ、フロッピー(登録商標)ディスク等の磁気ディスク、光磁気ディスク、CD−ROM等の可搬型記録媒体に限定されるものではなく、モデム105やLAN等の通信装置や通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
図12は、コンピュータシステム100の本体部101内の要部の構成を説明するブロック図である。同図中、本体部101は、バス200により接続されたCPU201、RAMやROM等からなるメモリ部202、ディスク110用のディスクドライブ203及びハードディスクドライブ(HDD)204からなる。本実施例では、ディスプレイ102、キーボード103及びマウス104も、バス200を介してCPU201に接続されているが、これらは直接CPU201に接続されていても良い。又、ディスプレイ102は、入出力画像データの処理を行う周知のグラフィックインタフェース(図示せず)を介してCPU201に接続されていても良い。プログラムや各種データを格納するための記憶部は、メモリ部202、ディスクドライブ203、HDD204及びコンピュータシステム100からアクセス可能な記録媒体106から選択された少なくとも1つで構成可能である。
尚、コンピュータシステム100の構成は図11及び図12に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
図13は、本実施例の動作を説明するフローチャートである。ステップS21〜S31の処理は、プログラムの手順に対応し、測定対象となるターゲットプログラムに対してCPU201により、即ち、コンピュータシステム100の対応する手段により実行される。ここでは説明の便宜上、測定環境として、プログラムの実行性能の測定方法がプログラムの実行環境に応じて異なるサンプラ、プロファイラ及びPAが選択可能な場合について説明する。サンプラ、プロファイラ及びPAは、プログラムの実行性能を測定するツールである。
ステップS21は、入力部から入力されたオペレータの指示に基づいて、プログラムの実行性能の測定環境を表示画面102a上で選択し、選択された測定環境がサンプラであれば処理はステップS22−1へ進み、プロファイラであれば処理はステップS22−2へ進み、PAであれば処理はステップS22−3へ進む。ステップS22−2〜S27及びステップS22−3〜S27は、基本的にはステップS22−1〜S27と同様の処理を行うので、以下の説明では、最初に選択された測定環境がサンプラであり、次回に選択された測定環境がPAである場合について説明する。
ステップS22−1は、サンプラによりプログラムの実行性能を測定するプロジェクトを作成する。ステップS23は、入力部から入力されたオペレータの指示に基づいて、最初はサンプラの測定範囲(即ち、測定開始及び終了情報を示す測定制御情報)をソース埋め込みの形で設定すると共に、次回の測定条件を設定する。次回の測定条件には、次回測定を行う測定環境や測定対象に関する情報が含まれる。このようにして設定された測定範囲及び次回の測定条件は、上記記憶部に格納される。ステップS24−1は、測定対象となるターゲットのビルド及びロードを行う。ステップS25は、ステップS23が実行されない場合に実行され、入力部から入力されたオペレータの指示に基づいて、最初はサンプラの測定範囲(即ち、測定制御情報)を設定すると共に、次回の測定条件を設定する。このようにして設定された測定範囲及び次回の測定条件は、上記記憶部に格納される。ステップS26−1は、設定された測定範囲でサンプラによる測定を実行する。ステップS27は、測定の結果得られるプログラムの性能情報を取得し、測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理して記憶部に格納すると共に表示画面102a上に表示し、処理はステップS28へ進む。
ステップS28は、取得されて表示された性能情報が予め設定されている所望の性能以上であり十分であるか否かを判定する。ステップS28の判定結果がYESであると、ステップS29は、入力部から入力されたオペレータの指示に基づいて、プログラムの実行性能のチューニングを行うか否かを判定する。ステップS29の判定結果がYESであると、ステップS30は、入力部から入力されたオペレータからの指示に基づいて、プログラムの実行性能をチューニングする。これにより、測定結果、即ち、性能情報に応じて、プログラムの実行性能のチューニングを行うことができる。ステップS28の判定結果がNO、或いは、ステップS30の後、ステップS31は、入力部から入力されたオペレータの指示に基づいて、他の測定環境でプログラムの実行性能を測定するか否かを判定し、判定結果がYESであると、処理はステップS21へ戻る。ステップS29又はS31の判定結果がNOであると、処理は終了する。
ここでは、次回の測定環境としてPAが選択されているので、次回の測定時には、ステップS23又はS25は入力部から入力されたオペレータの指示に基づいて、今度はPAの測定範囲(即ち、測定制御情報)を設定すると共に、必要に応じて次回の測定条件を設定する。説明の便宜上、更に次回の測定は行われないものとすると、ステップS23又はS25で設定された測定範囲は、上記記憶部に格納される。又、ステップS27は、測定の結果得られるプログラムの性能情報を取得して記憶部に格納すると共に表示画面102a上に表示する。
次に、図13に示すステップS22−1,S23,S25,S27を最初の測定時に実行する際にコンピュータシステム100のディスプレイ102に表示される表示画面について説明する。
ステップS22−1で作成されるプロジェクト「+Sampler.PRJ」は、例えば図2に示すように表示され、ここでは統合開発環境(IDE)中に登録されているものとする。IDEでは、上記の場合はプロジェクト制御によりサンプラ、パフォーマンスアナライザ(PA)又はプロファイラが選択され、ビルド制御によりコンパイル、アセンブル及びリンクが行われ、サンプラ又はPA選択時にエミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理され、プロファイラ選択時にシミュレータ制御によりターゲットプログラムの実行性能が測定されてその性能情報が取得され測定時に設定された測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
最初の測定時にステップS23が行われると、図3に示すようにサンプラの測定範囲がソース埋め込みの形で設定される。この際、図14に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定される。図14は、一例として、PAが次回測定を行う測定環境として設定され、占有率が80%以上の関数が測定対象に設定される場合を示す。これにより、この場合の次回の測定条件については、例えば図15に示す情報が記憶部に格納される。図15では、各選択可能なツールに対して、測定開始及び終了情報を示す測定制御情報「開始」及び「終了」と次回測定を行うツール(測定環境)であるか否かを示す情報「次回」と、次回測定を行うPAの測定対象が占有率が80%以上の関数であることを示す情報が、次回測定を行う測定条件として設定されている。図15中、「次回」のフィールドに「○」印が記載されていると、次回測定を行うツールであることが示される。ここでは、先ずサンプラで測定を行い、次にPAで測定を行うので、図15中、先ずサンプラに対する測定制御情報(測定範囲)が格納されると、必要に応じて適切な変換処理を行って得られた対応する測定制御情報がPAに対して自動的に格納される。サンプラでの測定の後にプロファイラでの測定を行う場合には、先ずサンプラに対する測定制御情報が格納されると、必要に応じて適切な変換処理を行って得られた対応する測定制御情報がプロファイラに対して自動的に格納される。
ステップS23の代わりに最初の測定時にステップS25が行われると、図4に示すようにサンプラの測定範囲がソース埋め込みの以外の形で設定される。この際、上記ステップS23の場合と同様に、図14に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定される。これにより、この場合の次回の測定条件については、例えば図15に示す情報が記憶部に格納される。
図16は、最初の測定時にステップS27が行われると表示される測定結果を示す図である。図16に示す測定結果には、最初の測定により得られる、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、図15に示す如き格納情報から得られる、次回の測定時の測定制御情報と測定対象を含む次回測定条件とからなる。測定制御情報は、次回測定を行うPAの測定開始及び終了に関する情報からなる。又、測定対象は、次回測定を行うPAの測定対象を「○」印で示し、測定対象外を「×」印で示す。図16に示す如きプログラムの性能情報から、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。ここでは、ステップS21において占有率が最も高い高コスト関数「func11()」に対してPAが次回の測定環境として選択される。従って、次回測定するPAの測定範囲は、「test1.c line 12」にPAの測定開始位置を示す「 pa_start:」が挿入候補として示されている図16の測定制御情報から抽出可能である。尚、占有率が最も高い関数に対してPAを次回の測定環境として選択する等の選択基準は、予め設定されていても、オペレータにより動的に選択可能としても良い。このようにして、ステップS27での測定の結果得られるプログラムの性能情報は、ステップS23又はS25で設定された次回の測定時の測定条件と共に次回の測定環境の候補に対してリンク可能に管理される。
次に、図13に示すステップS22−3,S23,S25,S27を次回の測定時に実行する際にコンピュータシステム100のディスプレイ102に表示される表示画面について説明する。ここでは、ステップS28は、例えば関数の占有率が80%以上の場合に所望の性能以上であり十分であると判断するものとする。
次回の測定時にステップS22−3で作成されるプロジェクト「+PA.PRJ」は、例えば図6に示すように表示される。次回の測定時に行われるステップS23では、ソース埋め込みの形でPAの測定範囲を設定するが、最初の測定時に行ったステップS27で抽出された測定制御情報から、高コスト関数「func11()」に対してPAで測定を行うための専用の関数が自動的に埋め込まれる。このようなPAの測定範囲の自動的な設定は、最初の測定時に行ったステップS27での測定の結果得られるプログラムの性能情報が、最初の測定時に行ったステップS23又はS25で設定された次回の測定時の測定条件と共に次回の測定環境の候補に対してリンク可能に管理されているため実現できる。この結果、例えば図8の如きPAの測定範囲が自動的に設定される。
又、次回の測定時にステップS23が実行されずに行われるステップS25では、ソース埋め込みの以外の形でPAの測定範囲が設定される。この場合も、最初の測定時に行ったステップS27で抽出された測定制御情報から、PAの測定範囲が自動的に設定される。この結果、例えば図8の如きPAの測定範囲が自動的に設定される。
この結果、次回の測定時に行われるステップS27では、例えば図10に示す如き性能情報が取得されて表示される。これにより、オペレータに煩雑な操作を必要とすることなく、容易に、且つ、確実に、高コストの関数「func11()」の性能指標を特定することができる。
従って、プログラムの実行性能をチューニングする性能チューニング方法又は装置において、任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理機能又は手段は、上記ステップS23又はS25及びステップS27で構成可能であり、任意の測定環境とは異なる測定環境を用いてプログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定機能又は手段は、上記ステップS23又はS25で構成可能であり、性能情報に応じてプログラムの実行性能をチューニングするチューニング機能又は手段は、上記ステップS28〜S30で構成可能である。
ところで、サンプラによる測定の後、PAで測定を行ったり、或いは、プロファイラで測定を行ったりする場合もある。このような場合には、最初にステップS23又はS25が行われる際に図17に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が2種類の次回の測定条件として設定されるようにしても良い。図17中、左側ではPAで次回測定を行う場合の条件設定が行え、右側ではプロファイラで次回測定を行う場合の条件設定が行える。ここでは、一例として左側でPAに対して占有率が80%以上の関数が測定対象に設定され、測定箇所として「関数」と「ソース反映」が選択されており、右側でプロファイラに対して呼び出し数(又は、参照回数)が8回以上の関数が測定対象に設定され、測定箇所として「ループ(LOOP)」と「範囲設定」が設定されている。尚、2種類の測定条件を設定する画面は、同時に表示されなくても例えば交互に表示される構成であっても良い。「ソース反映」は、占有率が80%以上の関数(即ち、PAの測定範囲の関数)をソース中に自動的に埋め込む設定である。又、「範囲設定」は、ループ(即ち、プロファイラの測定範囲)の設定を有効化する設定である。
図18は、図17の如き条件設定の後に最初の測定時にステップS27が行われると表示される測定結果を示す図である。図18に示す測定結果には、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、PAによる次回の測定時の測定制御情報と測定対象を含むPAの次回の測定条件と、プロファイラによる次回測定時の測定制御情報と測定対象を含むプロファイラの次回の測定条件とからなる。PAの測定制御情報は、次回測定を行うPAの測定開始及び終了に関する情報が測定対象区間のアドレスとして示されており、PAの測定対象は、次回測定を行うPAの測定対象が「関数」であるか否か等を示す。プロファイラの測定制御情報は、次回測定を行うプロファイラの測定開始及び終了に関する情報からなり、プロファイラの測定対象は、次回測定を行うプロファイラの測定対象が「ループ(LOOP)」であるか否か等を示す。図18に示すプログラムの性能情報によれば、次回の測定時にPAを用いる場合にもプロファイラを用いる場合にも対応できる。図18に示す如きプログラムの性能情報からも、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。
又、サンプラによる測定の後、プロファイラで測定する測定範囲がチューニングポイントに直結しているような場合もある。このような場合には、最初の測定時にステップS23又はS25が行われる際に図19に示す如き画面を表示して、入力部から入力されたオペレータの指示に基づいて、次回測定を行う測定環境や測定対象に関する情報が次回の測定条件として設定されるようにしても良い。図19中、プロファイラで次回測定を行う場合の条件設定が、一例としてプロファイラに対して測定対象が呼び出し数(又は、参照回数)が8回以上の関数に設定され、測定箇所として「ループ(LOOP)」と「範囲設定」が設定され、埋め込み記述として最適化挿入命令「# pragma loop unroll」が設定されている。「範囲設定」は、ループ(即ち、プロファイラの測定範囲)の設定を有効化する設定である。「# pragma loop unroll」は、高頻度ループの箇所に、最適化命令(# pragma loop unroll: for/whileループの展開最適化)の挿入を行う設定である。最適化挿入命令を測定条件に埋め込むことで、図20に示すように、プログラムの自動チューニングが可能となる。最適化命令の挿入行が関数外であるか関数内であるかは、図13に示すステップS22−1(S22−2又はS22−3)においてターゲットをビルドする際に通常ターゲットに含まれるデバッグ情報の関数定義行等から判断することが可能である。
図20は、図19の如き条件設定の後に最初の測定時にステップS27が行われると表示される測定結果を示す図である。図20に示す測定結果には、各関数名に対する呼出し数及び占有率を含むプログラムの性能情報と、PAによる次回の測定時の測定制御情報と測定対象を含むPAの次回測定情報と、プロファイラによる次回測定時の測定制御情報と測定対象を含むプロファイラの次回測定情報と、最適化挿入命令とからなる。つまり、図20に示す測定結果は、図18に示す測定結果に加え、最適化挿入命令を含む。図20に示すプログラムの性能情報によれば、次回の測定時にPAを用いる場合にもプロファイラを用いる場合にも対応できる。図20に示す如きプログラムの性能情報からも、高コストの関数を特定することができ、高コスト関数に対してプログラムの実行性能を次回測定する測定環境を選択できる。更に、プログラムの自動チューニングを行うことができる。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1) プログラムの実行性能をチューニングする性能チューニング方法であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定ステップと、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニングステップとを含むことを特徴とする、性能チューニング方法。
(付記2) 該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、付記1記載の性能チューニング方法。
(付記3) 該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、付記1又は2記載の性能チューニング方法。
(付記4) 異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、付記1〜3のいずれか1項記載の性能チューニング方法。
(付記5) 該管理ステップは、複数の次回の測定環境に対して該測定条件と該性能情報をリンク可能に管理することを特徴とする、付記1〜4のいずれか1項記載の性能チューニング方法。
(付記6) 付記1〜5のいずれか1項記載の性能チューニング方法の各ステップをコンピュータに実行させることを特徴とする、プログラム。
(付記7) 付記6記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
(付記8) 付記1〜5のいずれか1項記載の性能チューニング方法を用いることを特徴とする、プログラム開発方法。
(付記9) プログラムの実行性能をチューニングする性能チューニング装置であって、
任意の測定環境でプログラムの実行性能を測定した際に設定された測定条件と、測定の結果取得されたプログラムの性能情報とを、該任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、
該任意の測定環境とは異なる測定環境を用いて該プログラムの実行性能を測定する際の測定条件を、リンク可能に管理された情報に基づいて自動的に設定する設定手段と、
該性能情報に応じて該プログラムの実行性能をチューニングするチューニング手段とを含むことを特徴とする、性能チューニング装置。
(付記10) 該測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、付記9記載の性能チューニング装置。
(付記11) 該リンク可能に管理された情報には、該任意の測定環境での測定時に設定された測定範囲と、該任意の測定範囲とは異なる次回の測定環境の候補に対して格納される対応する測定情報とを含むことを特徴とする、付記9又は10記載の性能チューニング装置。
(付記12) 異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、付記9〜11のいずれか1項記載の性能チューニング装置。
(付記13) 該管理手段は、複数の次回の測定環境に対して該測定条件と該性能情報をリンク可能に管理することを特徴とする、付記9〜12のいずれか1項記載のチューニング装置。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
従来の性能チューニング方法の一例を説明するフローチャートである。 ステップS2−1を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS3−1を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS5−1を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS7−1を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS2−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS3−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS3−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS5−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 ステップS7−3を実行する際にコンピュータシステムの表示部に表示される表示画面の一例を示す図である。 本発明が適用されるコンピュータシステムを示す斜視図である。 コンピュータシステムの本体部内の要部の構成を説明するブロック図である。 実施例の動作を説明するフローチャートである。 最初にステップS23が行われる際に表示される次回の測定条件設定画面の一例を示す図である。 測定範囲及び次回の測定条件が設定されると記憶部に格納される情報を説明する図である。 最初にステップS27が行われる際に表示される測定結果を示す図である。 次回の測定条件設定画面の他の例を示す図である。 次回にステップS27が行われる際に表示される測定結果を示す図である。 次回の測定条件設定画面の更に他の例を示す図である。 次回にステップS27が行われる際に表示される測定結果を示す図である。
符号の説明
100 コンピュータシステム
101 本体部
102 ディスプレイ
102a 表示画面
103 キーボード
104 マウス
105 モデム
106 記録媒体
110 ディスク
200 バス
201 CPU
202 メモリ部
203 ディスクドライブ
204 ハードディスクドライブ

Claims (10)

  1. プログラムの実行性能をチューニングする性能チューニング方法であって、
    任意の測定環境でプログラムの実行性能を測定した際に設定されている測定条件と、前記任意の測定環境での測定の結果取得されたプログラムの性能情報とを、前記任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理ステップと、
    前記任意の測定環境とは異なる測定環境を用いて前記プログラムの実行性能を測定する際の測定条件及び測定範囲を、リンク可能に管理された前記測定条件と前記性能情報に基づいて設定する設定ステップと、
    測定された性能情報により実行性能のチューニングを行うために、前記設定ステップで設定された測定条件に基づいて前記任意の測定環境とは異なる測定環境における前記プログラムの性能情報を前記測定範囲で測定するステップ
    とを含むことを特徴とする、性能チューニング方法。
  2. 前記プログラムの実行性能を測定する際の測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、請求項1記載の性能チューニング方法。
  3. 前記リンク可能に管理された情報は、前記任意の測定環境での測定時に設定された測定範囲と、前記任意の測定環境とは異なる次回の測定環境の候補に対して格納される前記測定範囲に変換処理を施した測定範囲とを含むことを特徴とする、請求項1又は2記載の性能チューニング方法。
  4. 前記任意の測定環境とは異なる測定環境は、エミュレータによる測定とシミュレータによる測定とを含むことを特徴とする、請求項1〜3のいずれか1項記載の性能チューニング方法。
  5. 前記管理ステップは、複数の測定環境の候補に対して前記任意の測定環境でプログラムの実行性能を測定した際に設定されている測定条件と前記性能情報をリンク可能に管理することを特徴とする、請求項1〜4のいずれか1項記載の性能チューニング方法。
  6. 請求項1〜5のいずれか1項記載の性能チューニング方法の各ステップをコンピュータに実行させることを特徴とする、プログラム。
  7. 請求項6記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
  8. プログラムの実行性能をチューニングする性能チューニング装置であって、
    任意の測定環境でプログラムの実行性能を測定した際に設定されている測定条件と、前記任意の測定環境での測定の結果取得されたプログラムの性能情報とを、前記任意の測定環境とは異なる次回の測定環境の候補に対してリンク可能に管理する管理手段と、
    前記任意の測定環境とは異なる測定環境を用いて前記プログラムの実行性能を測定する際の測定条件及び測定範囲を、リンク可能に管理された前記測定条件と前記性能情報に基づいて設定する設定手段と、
    測定された性能情報により実行性能のチューニングを行うために、前記設定手段で設定された測定条件に基づいて前記任意の測定環境とは異なる測定環境における前記プログラムの性能情報を前記測定範囲で測定する手段
    とを備えたことを特徴とする、性能チューニング装置。
  9. 前記プログラムの実行性能を測定する際の測定条件は、測定を行う測定環境及びその測定環境での測定対象に関する情報を含むことを特徴とする、請求項記載の性能チューニング装置。
  10. 前記リンク可能に管理された情報は、前記任意の測定環境での測定時に設定された測定範囲と、前記任意の測定環境とは異なる次回の測定環境の候補に対して格納される前記測定範囲に変換処理を施した測定範囲とを含むことを特徴とする、請求項8又は9記載の性能チューニング装置。
JP2006056632A 2006-03-02 2006-03-02 性能チューニング方法及び装置、プログラム及び記憶媒体 Active JP4957017B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006056632A JP4957017B2 (ja) 2006-03-02 2006-03-02 性能チューニング方法及び装置、プログラム及び記憶媒体
US11/506,962 US7941787B2 (en) 2006-03-02 2006-08-21 Performance tuning method and apparatus, computer-readable program and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006056632A JP4957017B2 (ja) 2006-03-02 2006-03-02 性能チューニング方法及び装置、プログラム及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2007233855A JP2007233855A (ja) 2007-09-13
JP4957017B2 true JP4957017B2 (ja) 2012-06-20

Family

ID=38554366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006056632A Active JP4957017B2 (ja) 2006-03-02 2006-03-02 性能チューニング方法及び装置、プログラム及び記憶媒体

Country Status (2)

Country Link
US (1) US7941787B2 (ja)
JP (1) JP4957017B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4681491B2 (ja) * 2006-03-31 2011-05-11 富士通株式会社 プロファイリングプログラムおよびプロファイリング方法
US8799871B2 (en) * 2007-01-08 2014-08-05 The Mathworks, Inc. Computation of elementwise expression in parallel
US8176477B2 (en) * 2007-09-14 2012-05-08 International Business Machines Corporation Method, system and program product for optimizing emulation of a suspected malware
US20090293051A1 (en) * 2008-05-22 2009-11-26 Fortinet, Inc., A Delaware Corporation Monitoring and dynamic tuning of target system performance
JP5386905B2 (ja) * 2008-09-25 2014-01-15 富士通セミコンダクター株式会社 プロファイリング方法およびプロファイリングプログラム
JP5174648B2 (ja) * 2008-12-24 2013-04-03 株式会社日立製作所 プログラム開発支援機器、方法およびプログラム
US9098308B2 (en) * 2012-06-26 2015-08-04 Marvell World Trade Ltd. Method and apparatus for code performance analysis based on execution trace information
JP6471615B2 (ja) 2015-06-02 2019-02-20 富士通株式会社 性能情報生成プログラム、性能情報生成方法及び情報処理装置
US10853041B2 (en) * 2017-03-09 2020-12-01 Microsoft Technology Licensing, Llc Extensible instrumentation
US10809985B2 (en) 2017-03-09 2020-10-20 Microsoft Technology Licensing, Llc Instrumenting program code

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195436A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 計算機システム自動テスト方式
JPH0895826A (ja) * 1994-09-21 1996-04-12 Hitachi Software Eng Co Ltd プログラムテスト方法
JPH10333945A (ja) * 1997-06-02 1998-12-18 Hitachi Ltd 命令性能測定方式
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
US6483944B1 (en) * 1998-07-01 2002-11-19 Victor Company Of Japan, Limited Data coding method and apparatus therefor
US6189142B1 (en) * 1998-09-16 2001-02-13 International Business Machines Corporation Visual program runtime performance analysis
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6799147B1 (en) * 2001-05-31 2004-09-28 Sprint Communications Company L.P. Enterprise integrated testing and performance monitoring software
JP3987333B2 (ja) * 2001-12-06 2007-10-10 新日鉄ソリューションズ株式会社 性能測定装置、性能測定システム、記録媒体およびプログラム
US7665067B2 (en) * 2003-09-15 2010-02-16 Cadence Design (Israel) Ii Ltd. Method and system for automatically creating tests
US7421681B2 (en) * 2003-10-09 2008-09-02 International Business Machines Corporation Method and system for autonomic monitoring of semaphore operation in an application
US7757216B2 (en) * 2003-12-10 2010-07-13 Orcle International Corporation Application server performance tuning client interface
US7392370B2 (en) * 2004-01-14 2008-06-24 International Business Machines Corporation Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7559053B2 (en) * 2004-08-24 2009-07-07 Microsoft Corporation Program and system performance data correlation
US7458067B1 (en) * 2005-03-18 2008-11-25 Sun Microsystems, Inc. Method and apparatus for optimizing computer program performance using steered execution
US7657875B2 (en) * 2005-04-12 2010-02-02 International Business Machines Corporation System and method for collecting a plurality of metrics in a single profiling run of computer code
US7640536B1 (en) * 2005-09-27 2009-12-29 Rockwell Collins, Inc. Variable graph minimization for improved model-checking performance
US20070220492A1 (en) * 2006-03-16 2007-09-20 Microsoft Corporation Application verifier infrastructure and checks

Also Published As

Publication number Publication date
US20070234299A1 (en) 2007-10-04
US7941787B2 (en) 2011-05-10
JP2007233855A (ja) 2007-09-13

Similar Documents

Publication Publication Date Title
JP4957017B2 (ja) 性能チューニング方法及び装置、プログラム及び記憶媒体
US5926638A (en) Program debugging system for debugging a program having graphical user interface
EP3338179B1 (en) Graphical representation of data in a program code editor
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
US8719745B2 (en) Method and system for automatically establishing hierarchical parameterized cell (PCELL) debugging environment
JP2009129179A (ja) プログラム並列化支援装置およびプログラム並列化支援方法
JP4877068B2 (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
US20080235660A1 (en) Depicting Changes to Structures in an Integrated Development Environment
CN110554861B (zh) 具有编译和读取-评估-打印-循环操作的软件开发环境
US20090217259A1 (en) Building Operating System Images Based on Applications
JP3535354B2 (ja) ストール検出表示装置及び方法
JP2013152730A (ja) プラズマ処理システムコンポーネント解析ソフトウェアおよびそのプラズマ処理システムコンポーネント解析ソフトウェアを製作するための方法およびシステム
JP4328328B2 (ja) ソフトウエア開発ツールプログラム
JP4537336B2 (ja) プログラムデバッグ装置、プログラムデバッグ方法およびデバッグプログラム
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP4996262B2 (ja) プログラム部品化支援装置
JP4783612B2 (ja) 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2009169628A (ja) 監視制御システムの構築装置、構築方法およびプログラム
US20030167457A1 (en) System and method for providing an optimizer display tool
JP2004287869A (ja) プログラム実行監視装置および方法
JP2013137716A (ja) マクロ展開装置及びプログラム
JP2021177272A (ja) デバッグ支援装置、デバッグ支援方法およびプログラム
JP2022153748A (ja) 情報処理装置、情報処理システム、その制御方法およびプログラム
JP2004139369A (ja) 定数アドレス領域を指示するポインタ解析方法
JPH1091416A (ja) 原始プログラム表示システム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120123

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: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120305

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

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350