(57)【要約】【課題】プログラムの処理時間を計測可能とすること。【解決手段】計測装置は、プログラムの実行手段と、前記プログラムに関して第一のブレークポイントと第二のブレークポイントとを前記実行手段に設定する設定手段と、前記第一のブレークポイントへの到達が前記実行手段によって検知されてから、前記第二のブレークポインへの到達が前記実行手段に検知されるまでの時間を計測する計測手段とを有する。【選択図】図３
2014056515.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行手段と、
前記プログラムに関して第一のブレークポイントと第二のブレークポイントとを前記実行手段に設定する設定手段と、
前記第一のブレークポイントへの到達が前記実行手段によって検知されてから、前記第二のブレークポインへの到達が前記実行手段に検知されるまでの時間を計測する計測手段とを有する計測装置。
【請求項２】
前記第一のブレークポイントへの到達の検知及び前記第二のブレークポイントへの到達の検知を前記実行手段より通知され、それぞれの前記検知を前記計測手段に通知する通知手段と有し、
前記通知手段は、前記計測手段への通知を別スレッドによって行う請求項１記載の計測装置。
【請求項３】
プログラムの実行手段を有するコンピュータが、
前記プログラムに関して第一のブレークポイントと第二のブレークポイントとを前記実行手段に設定する設定手順と、
前記第一のブレークポイントへの到達が前記実行手段によって検知されてから、前記第二のブレークポインへの到達が前記実行手段に検知されるまでの時間を計測する計測手順とを実行する計測方法。
【請求項４】
前記第一のブレークポイントへの到達の検知及び前記第二のブレークポイントへの到達の検知を前記実行手段より通知され、それぞれの前記検知を前記計測手順に通知する通知手順を前記コンピュータが実行し、
前記通知手順は、前記計測手順への通知を別スレッドによって行う請求項３記載の計測方法。
【請求項５】
プログラムの実行手段を有するコンピュータに、
前記プログラムに関して第一のブレークポイントと第二のブレークポイントとを前記実行手段に設定する設定手順と、
前記第一のブレークポイントへの到達が前記実行手段によって検知されてから、前記第二のブレークポインへの到達が前記実行手段に検知されるまでの時間を計測する計測手順とを実行させる計測プログラム。
【請求項６】
前記第一のブレークポイントへの到達の検知及び前記第二のブレークポイントへの到達の検知を前記実行手段より通知され、それぞれの前記検知を前記計測手順に通知する通知手順を前記コンピュータに実行させ、
前記通知手順は、前記計測手順への通知を別スレッドによって行う請求項５記載の計測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測装置、計測方法、及び計測プログラムに関する。
【背景技術】
【０００２】
主に複合機又は融合機と呼ばれる画像形成装置において、その出荷後に、公開されたＡＰＩ（Application Program Interface）を利用して新たなアプリケーションプログラムの開発及びインストールが可能とされているものがある（例えば、特許文献１）。斯かる画像形成装置では、当該画像形成装置のベンダによって開発されたアプリケーションプログラムのみならず、他のソフトウェアベンダによって開発されたアプリケーションプログラムもインストールされ、利用される。
【０００３】
インストールされたアプリケーションプログラムは、画像形成装置の起動時間や、省電力モードから復帰時間等に影響を与える可能性が有る。画像形成装置の起動過程において、アプリケーションプログラムの起動処理が行われ、省電力モードからの復帰過程において、停止状態であったアプリケーションプログラムの復帰処理等が行われるからである。したがって、インストールされるアプリケーションプログラムが多くなればなるほど、画像形成装置の起動時間や省電力モードからの復帰時間等は長期化する傾向にある。
【０００４】
起動時間や省電力モードからの復帰時間等は長期化するといった状況は、ユーザにとっては好ましくない。そこで、アプリケーションプログラムの起動処理や復帰処理等に関して、所要時間の上限値（以下、「制限時間」という。）を規定することが考えられる。すなわち、各ソフトウェアベンダは、制限時間内に、起動処理や復帰処理等が完了するように、アプリケーションプログラムを実装することが考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ソフトウェアベンダにしてみれば、自社製品の競争力を高めるため、より利便性の高い、高機能なアプリケーションプログラムを提供したいといった欲求がある。一般的に、高機能になればなるほど、プログラムの初期化処理等は長期化する傾向に有る。したがって、制限時間を遵守していないアプリケーションプログラムが製造及び出荷される可能性がある。このような問題は、画像形成装置に限られず、プログラムを実行可能な電子機器や、汎用的な情報処理装置に関しても共通に存在しうる。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、プログラムの処理時間を計測可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、計測装置は、プログラムの実行手段と、前記プログラムに関して第一のブレークポイントと第二のブレークポイントとを前記実行手段に設定する設定手段と、前記第一のブレークポイントへの到達が前記実行手段によって検知されてから、前記第二のブレークポインへの到達が前記実行手段に検知されるまでの時間を計測する計測手段とを有する。
【発明の効果】
【０００８】
プログラムの処理時間を計測可能とすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】ＢＰ設定アプリの構成例を示す図である。
【図４】メソッドの処理時間の計測処理の処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１１】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００１２】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。液晶パネルは、タッチパネル機能を有していてもよい。この場合、当該液晶パネルは、入力手段の機能をも兼ねる。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１３】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置１０は、ＯＳ１２１、コントロールサービス１２２、ＶＡＳ１２３、標準アプリ１２４、ＳＤＫプラットフォーム１２５、及びＳＤＫアプリ１３０等を有する。
【００１４】
ＯＳ１２１は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２１上においてプロセス又はスレッドとして動作する。
【００１５】
コントロールサービス１２２は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供したり、画像形成装置１０の基盤的な機能等を実行したりするソフトウェアモジュール群である。
【００１６】
ＶＡＳ（Virtual Application Service）１２３は、コントロールサービス１２２のインタフェースをラッピングし、コントロールサービス１２２のバージョンアップに伴うインタフェースの相違点を吸収する。したがって、ＶＡＳ１２３上で動作するプログラム（例えば、ＳＤＫプラットフォーム１２５）に対しては、コントロールサービス１２２の各パージョンに対する互換性が保証される。
【００１７】
標準アプリ１２４は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションプログラム（以下、「アプリケーション」又は「アプリ」という。）の集合である。例えば、スキャンジョブを画像形成装置１０に実行させるスキャンアプリ、印刷ジョブを画像形成装置１０に実行させる印刷アプリ、コピージョブを画像形成装置１０に実行させるコピーアプリ、ＦＡＸの送受信を画像形成装置１０に実行させるＦＡＸアプリ等が、標準アプリ１２４の一例として挙げられる。
【００１８】
ＳＤＫプラットフォーム１２５は、ＳＤＫアプリ１３０の実行環境を提供する。例えば、ＳＤＫプラットフォーム１２５は、Ｊａｖａ（登録商標）言語によるＡＰＩ（Application Program Interface）をＳＤＫアプリ１３０に対して提供する。すなわち、各ＳＤＫアプリ１３０は、Ｊａｖａ（登録商標）言語によって開発される。ＳＤＫプラットフォーム１２５は、また、ＳＤＫアプリ１３０のライフサイクルの管理等を行う。具体的には、ＳＤＫプラットフォーム１２５は、ＳＤＫアプリ１３０の起動及び終了や、停止及び復帰等を制御する。
【００１９】
ＳＤＫアプリ１３０の起動とは、ＳＤＫアプリ１３０をスレッドとして起動させることをいう。ＳＤＫアプリ１３０の終了とは、ＳＤＫアプリ１３０のスレッドを終了させることをいう。ＳＤＫアプリ１３０の停止とは、ＳＤＫアプリ１３０の処理の進行を停止させることをいう。ＳＤＫアプリ１３０の復帰とは、停止していた処理を再開させることういう。
【００２０】
なお、各ＳＤＫアプリ１３０は、ＳＤＫプラットフォーム１２５が各ＳＤＫアプリ１３０のライフサイクルを管理するための共通のメソッドを備える。例えば、各ＳＤＫアプリ１３０は、起動メソッド、終了メソッド、停止メソッド、及び復帰メソッド等を備える。ＳＤＫプラットフォーム１２５は、画像形成装置１０の状態の変化に応じて、これらのメソッドを呼び出すことにより、各ＳＤＫアプリ１３０を制御する。例えば、画像形成装置１０の起動時において、ＳＤＫプラットフォーム１２５は、各ＳＤＫアプリ１３０の起動メソッドを呼び出す。画像形成装置１０が省電力モードに移行する際、ＳＤＫプラットフォーム１２５は、起動されている各ＳＤＫアプリ１３０の停止メソッドを呼び出す。画像形成装置１０が省電力モードから復帰する際、ＳＤＫプラットフォーム１２５は、起動されている各ＳＤＫアプリ１３０の復帰メソッドを呼び出す。画像形成装置１０の電源が切られる際、ＳＤＫプラットフォーム１２５は、起動されている各ＳＤＫアプリ１３０の終了メソッドを呼び出す。
【００２１】
なお、ＳＤＫアプリ１３０の起動及び終了は、操作パネル１５を介したユーザの入力に応じて行われてもよい。
【００２２】
ＳＤＫプラットフォーム１２５は、ＪＶＭ１２６等を含む。ＪＶＭ１２６は、いわゆるＪａｖａ（登録商標）仮想マシン（Java（登録商標） Virtual Machine）であり、Ｊａｖａ（登録商標）バイトコードによって定義された命令を解釈して実行する。
【００２３】
ＳＤＫアプリ１３０は、画像形成装置１０に対するプラグインとして、画像形成装置１０の機能拡張を図るために開発されるアプリケーションをいう。ＳＤＫアプリ１３０は、ＳＤＫプラットフォーム１２５上にインストールされ、ＳＤＫプラットフォーム１２５の制御の下、当該ＳＤＫアプリ１３０に実装された機能を画像形成装置１０に実行させる。各ＳＤＫアプリ１３０は、ＯＳＧｉ（Open Services Gateway Initiative）プラットフォームのバンドルとして実装されてもよい。
【００２４】
図２では、Ａアプリ１３１、Ｂアプリ１３２、ＢＰ設定アプリ１３３、及び計測アプリ１３４が、ＳＤＫアプリ１３０の一例として示されている。Ａアプリ１３１及びＢアプリ１３２は、単なる例示であり、これらの機能は、特定のものに限定されない。ＢＰ設定アプリ１３３は、任意のクラスの任意のメソッドに対してブレークポイントを設定するＳＤＫアプリ１３０である。クラスとは、オブジェクト指向におけるクラスをいう。Ｊａｖａ（登録商標）は、オブジェクト指向言語であるため、各ＳＤＫアプリ１３０は、１以上のクラスによって構成されている。また、ＳＤＫプラットフォーム１２５が提供するＡＰＩの実体は、クラス群である。したがって、任意のクラスの任意のメソッドに対してブレークポイントを設定可能であるとは、任意のＳＤＫアプリ１３０、又はＳＤＫプラットフォーム１２５の任意のメソッドに対してブレークポイントを設定可能であることを意味する。
【００２５】
ブレークポイントとは、プログラムをデバッグするために設定される一時的な停止箇所をいう。本実施の形態では、プログラムの停止のためではなく、プログラム中の或る箇所への到達の検知のために、ブレークポイントが設定される。
【００２６】
計測アプリ１３４は、ＢＰ設定アプリ１３３を利用して、ＳＤＫプラットフォーム１２５上（ＪＶＭ１２６上）において呼び出される任意のメソッドの処理時間を計測するＳＤＫアプリ１３０である。具体的には、計測アプリ１３４は、ＢＰ設定アプリ１３３を利用して、計測対象のメソッドの先頭部分（又は開始部分）及び末尾部分（又は終了部分）の２箇所にブレークポイントを設定する。計測アプリ１３４は、２箇所のブレークポイント間の経過時間を算出することにより、当該メソッドの処理時間を計測する。
【００２７】
ＢＰ設定アプリ１３３について、更に詳しく説明する。図３は、ＢＰ設定アプリの構成例を示す図である。図３において、ＢＰ設定アプリ１３３は、下位モジュール１３３ａ及び上位モジュール１３３ｂを含む。
【００２８】
下位モジュール１３３ａは、ＪＶＭＴＩ（Java Virtual Machine Tool Interface）のエージェントとして実装されるプログラムモジュールである。したがって、下位モジュール１３３ａは、Ｃ言語によって実装される。なお、ＪＶＭＴＩとは、ＪＶＭ１２６が開発ツールや監視ツール用に提供するインタフェースである。ＪＶＭＴＩは、例えば、ＪＶＭ１２６上で動作するプログラムの制御や状態の監視等のためのインタフェースを含む。ＪＶＭＴＩを利用することで、各プログラムのソースコードを修正したりすることなく、各プログラムの制御や状態の監視等を行うことができる。
【００２９】
本実施の形態において、下位モジュール１３３ａは、ＪＶＭＴＩのＳｅｔＢｒｅａｋｐｏｉｎｔ関数を利用する。ＳｅｔＢｒｅａｋｐｏｉｎｔ関数は、任意のメソッドに対してブレークポイントを設定する関数である。ブレークポイントに到達した場合、ＪＶＭ１２６は、Ｂｒｅａｋｐｏｎｔイベントを生成する。下位モジュール１３３ａは、Ｂｒｅａｋｐｏｉｎｔイベントを補足することで、ブレークポイントへの到達を検知する。
【００３０】
上位モジュール１３３ｂは、ブレークポイントの設定及びブレークポイントへの到達の通知のためのインタフェースを、他のＳＤＫアプリ１３０（本実施の形態では、計測アプリ１３４）に対して提供するプログラムモジュールである。具体的には、上位モジュール１３３ｂは、Ｊａｖａ（登録商標）言語によって実装される。したがって、Ｊａｖａ（登録商標）言語によって実装される他のＳＤＫアプリ１３０は、上位モジュール１３３ｂのインタフェースを直接呼び出すことができる。
【００３１】
上位モジュール１３３ｂは、計測アプリ１３４からの要求を、ＪＮＩ（Java（登録商標） Native Interface）を介して下位モジュール１３３ａに伝達する。
【００３２】
すなわち、ＢＰ設定アプリ１３３は、ブレークポイントの設定といった、下位レベルの又は原始的な機能を実現するため、計測アプリ１３４のみならず、他のＳＤＫアプリ１３０からも利用される可能性がある。上位モジュール１３３ｂによって、ＳＤＫアプリ１３０ごとにＪＮＩを利用した複雑な実装を行う必要性を低減させることができる。
【００３３】
以下、画像形成装置１０が実行する処理手順について説明する。図４は、メソッドの処理時間の計測処理の処理手順の一例を説明するためのシーケンス図である。
【００３４】
ステップＳ１０１において、計測アプリ１３４は、処理時間の計測対象とするクラス名及びメソッド名の入力を受け付ける。クラス名及びメソッド名は、例えば、計測アプリ１３４が操作パネル１５に表示させている設定画面を介してユーザによって入力される。または、計測アプリ１３４を利用する他のＳＤＫアプリ１３０からクラス名及びメソッド名が入力されてもよい。以下、計測対象とされたクラス名及びメソッド名に係るメソッドを、便宜上「メソッドＡ」という。
【００３５】
続いて、計測アプリ１３４は、ＢＰ設定アプリ１３３の上位モジュール１３３ｂに対して、クラス名及びメソッド名を指定して、メソッドＡの先頭部分に対するブレークポイントの設定を要求する（Ｓ１０２）。続いて、上位モジュール１３３ｂは、下位モジュール１３３ａに対して、クラス名及びメソッド名を指定して、メソッドＡの先頭部分に対するブレークポイントの設定を要求する（Ｓ１０３）。続いて、下位モジュール１３３ａは、ＪＶＭＴＩを介して、メソッドＡの先頭部分へのブレークポイントの設定をＪＶＭ１２６へ要求する（Ｓ１０４）。当該要求は、例えば、ＳｅｔＢｒｅａｋｐｏｉｎｔ関数を利用して行われる。
【００３６】
続いて、計測アプリ１３４は、ＢＰ設定アプリ１３３の上位モジュール１３３ｂに対して、クラス名及びメソッド名を指定して、メソッドＡの末尾部分に対するブレークポイントの設定を要求する（Ｓ１０５）。続いて、上位モジュール１３３ｂは、下位モジュール１３３ａに対して、クラス名及びメソッド名を指定して、メソッドＡの末尾部分に対するブレークポイントの設定を要求する（Ｓ１０６）。続いて、下位モジュール１３３ａは、ＪＶＭＴＩを介して、メソッドＡの末尾部分へのブレークポイントの設定をＪＶＭ１２６へ要求する（Ｓ１０７）。当該要求は、例えば、ＳｅｔＢｒｅａｋｐｏｉｎｔ関数を利用して行われる。
【００３７】
その後、ＪＶＭ１２６は、メソッドＡの先頭部分のブレークポイントへの到達（メソッドＡが呼び出されたこと）を検知すると（Ｓ１０８）、メソッドＡに対して割り込みをかけて、メソッドＡの先頭部分に対するブレークポイントへの到達を、下位モジュール１３３ａに通知する（Ｓ１０９）。当該通知は、ＪＶＭＴＩを介して行われる。すなわち、下位モジュール１３３ａは、ＪＶＭＴＩに準拠した、ブレークポイントへの到達の通知を受けるためのインタフェースを実装している。ＪＶＭ１２６は、当該インタフェースを介して、ブレークポイントへの到達を下位モジュール１３３ａに通知する。なお、当該通知では、ブレークポイントのクラス名、メソッド名、及び箇所（先頭部分）等が通知される。
【００３８】
なお、割り込みをかけられたメソッドＡは、割り込みの解除待ちとなって、停止する。
【００３９】
続いて、下位モジュール１３３ａは、メソッドＡの先頭部分に対するブレークポイントへの到達を上位モジュール１３３ｂに通知する（Ｓ１１０）。当該通知では、ブレークポイントのクラス名、メソッド名、及び箇所（先頭部分）が通知される。続いて、上位モジュール１３３ｂは、別スレッドを起動し、当該別スレッドにおいて、メソッドＡの先頭部分に対するブレークポイントへの到達を計測アプリ１３４に通知する（Ｓ１１１）。
【００４０】
一方、上位モジュール１３３ｂの本スレッドは、下位モジュール１３３ａへの応答を即座に行う（Ｓ１１２）。すなわち、別スレッドによって計測アプリ１３４への通知を行うのは、計測アプリ１３４からの応答を待たずに下位モジュール１３３ａへの応答を迅速に行い、メソッドＡの割り込み解除待ちの状態を早期に解消するためである。メソッドＡの割り込み解除待ちの状態が長引けば、計測時間に対する誤差が大きくなる可能性が有るからである。
【００４１】
応答を受けた下位モジュール１３３ａは、ＪＶＭ１２６に対する応答を行う（Ｓ１１３）。応答を受けたＪＶＭ１２６は、メソッドＡに対する割り込みを解除する。その結果、メソッドＡの処理は進行する。
【００４２】
なお、下位モジュール１３３ａから上位モジュール１３３ｂへの通知、及び上位モジュール１３３ｂから計測アプリ１３４への通知は、例えば、一般的に利用されている、イベントハンドラの機構に基づいて行われればよい。例えば、上位モジュール１３３ｂは下位モジュール１３３ａに、計測アプリ１３４は上位モジュール１３３ｂに対し、それぞれブレークポイントへの到達の通知を受けるための関数又はオブジェクトのアドレス情報を通知しておく。下位モジュール１３３ａ又は上位モジュール１３３ｂは、当該関数又はオブジェクトのメソッドを呼び出すことにより、上位モジュール１３３ｂ又は計測アプリ１３４に対し、ブレークポイントへの到達を通知する。
【００４３】
メソッドＡの先頭部分のブレークポイントへの到達の通知を受けた計測アプリ１３４は、例えば、現在時刻をＯＳ１２１より取得し、当該現在時刻を、ＲＡＭ１１２に記憶する（Ｓ１１４）。
【００４４】
その後、ＪＶＭ１２６は、メソッドＡの終了を検知すると、メソッドＡに対して割り込みをかけて、メソッドＡの末尾部分に対するブレークポイントへの到達を、下位モジュール１３３ａに通知する（Ｓ１１５）。当該通知は、ステップＳ１０９と同様に行われる。なお、割り込みをかけられたメソッドＡは、割り込みの解除待ちとなって、停止する。
【００４５】
続いて、下位モジュール１３３ａは、メソッドＡの末尾部分に対するブレークポイントへの到達を上位モジュール１３３ｂに通知する（Ｓ１１６）。当該通知では、ブレークポイントのクラス名、メソッド名、及び箇所（末尾部分）が通知される。続いて、上位モジュール１３３ｂは、別スレッドを起動し、当該別スレッドにおいて、メソッドＡの末尾部分に対するブレークポイントへの到達を計測アプリ１３４に通知する（Ｓ１１７）。
【００４６】
一方、上位モジュール１３３ｂの本スレッドは、下位モジュール１３３ａへの応答を即座に行う（Ｓ１１８）。応答を受けた下位モジュール１３３ａは、ＪＶＭ１２６に対する応答を行う（Ｓ１１９）。応答を受けたＪＶＭ１２６は、メソッドＡに対する割り込みを解除する。
【００４７】
メソッドＡの末尾部分のブレークポイントへの到達の通知を受けた計測アプリ１３４は、例えば、現在時刻をＯＳ１２１より取得し、当該現在時刻を、ＲＡＭ１１２に記憶する（Ｓ１２０）。続いて、計測アプリ１３４は、ステップＳ１２０において記憶された時刻からステップＳ１１４において記憶された時刻を減算することにより、経過時間を算出する（Ｓ１２１）。続いて、計測アプリ１３４は、算出された経過時間を、メソッドＡの処理の処理時間として、例えば、操作パネル１５に表示させる（Ｓ１２２）。
【００４８】
上述したように、本実施の形態によれば、任意のクラスの任意のメソッドの処理時間を容易に計測することができる。したがって、例えば、所定のメソッドについて制限時間が設けされている場合に、当該制限時間違反のＳＤＫアプリ１３０の存在等を容易に検知することができる。
【００４９】
なお、本実施の形態では、上位モジュール１３３ｂは、計測アプリ１３４に対する、ブレークポイントへの到達の通知を、別スレッドによって行う例を示した。但し、別スレッドを起動しない形態が採用されてもよい。この場合、計測アプリ１３４による現在時刻の記憶の終了後に、メソッドＡに対する割り込みが解除されることになる。計測アプリ１３４による処理時間が、メソッドＡの処理時間に比較して極めて短ければ、別スレッドが起動されずとも、計測時間に対する誤差の影響を無視できる程度に抑えることができる。
【００５０】
また、本実施の形態では、ＪＶＭ１２６上で実行されるプログラムに関して、処理時間を計測する例を示したが、ＪＶＭＴＩと同様のインタフェース及び機構を有するプログラムの実行手段及び当該実行手段によって実行されるプログラムに関して、本実施の形態が適用されてもよい。
【００５１】
また、プログラムの実行手段を有するコンピュータ、電子機器等であれば、画像形成装置１０以外の装置に本実施の形態が適用されてもよい。
【００５２】
なお、本実施の形態において、ＪＶＭ１２６は、プログラムの実行手段の一例である。ＢＰ設定アプリ１３３は、設定手段及び通知手段の一例である。計測アプリ１３４は、計測手段の一例である。
【００５３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５４】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１２１        ＯＳ
１２２        コントロールサービス
１２３        ＶＡＳ
１２４        標準アプリ
１２５        ＳＤＫプラットフォーム
１２６        ＪＶＭ
１３０        ＳＤＫアプリ
１３１        Ａアプリ
１３２        Ｂアプリ
１３３        ＢＰ設定アプリ
１３４        計測アプリ
１３３ａ      下位モジュール
１３３ｂ      上位モジュール
【先行技術文献】
【特許文献】
【００５５】
【特許文献１】特開２００５−２６９６１９号公報
【図１】
2014056515.tif 000003
【図２】
2014056515.tif 000004
【図３】
2014056515.tif 000005
【図４】
2014056515.tif 000006