JP2016095792A - Information processing device, control method thereof, and program - Google Patents
Information processing device, control method thereof, and program Download PDFInfo
- Publication number
- JP2016095792A JP2016095792A JP2014232941A JP2014232941A JP2016095792A JP 2016095792 A JP2016095792 A JP 2016095792A JP 2014232941 A JP2014232941 A JP 2014232941A JP 2014232941 A JP2014232941 A JP 2014232941A JP 2016095792 A JP2016095792 A JP 2016095792A
- Authority
- JP
- Japan
- Prior art keywords
- processing apparatus
- information processing
- information
- application
- exception
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、ログファイル(ヒープダンプファイル)の生成を制御する情報処理装置、その制御方法、及びプログラムに関するものである。 The present invention relates to an information processing apparatus that controls generation of a log file (heap dump file), a control method therefor, and a program.
従来から、画像形成装置(MFP)上で動作するアプリケーション(以下、アプリと称する。)の実行環境としてJava(登録商標)が広く知られている。この実行環境では、Java言語で記述されたアプリ(以下、Javaアプリと称する。)が、Java Virtual Machine(JavaVM)上で動作する。Javaアプリはメモリを利用する場合、JavaVMにメモリ要求を行う。JavaVMは、MFPのメモリ領域からJavaアプリが利用可能なメモリ領域(Javaヒープ領域)として固定の領域をあらかじめ確保しており、Javaアプリからのメモリ要求を受信すると、Javaヒープ領域に空きがあるかを確認する。そして空きがある場合、JavaVMはJavaアプリからの要求に応じたメモリ領域をJavaアプリが利用可能にする。一方、Javaヒープ領域に空きがない場合は、JavaVMはOutOfMemoryErrorというException(例外)を生成し、Javaアプリにこの例外を通知する。このOutOfMemoryError発生時は、OutOfMemoryErrorの原因を特定するために、ヒープダンプファイルというログファイルを生成するのが一般的である。このヒープダンプファイルは、Javaヒープ領域内の状態を表したファイルであり、このファイルを解析することでOutOfMemoryErrorの原因が特定できる。ただし、このヒープダンプファイルを生成するためには、Javaヒープ領域の利用メモリ状況を正確に知るために、ヒープダンプファイル生成前に、Garbage Collection(GC)処理を行う必要がある。このGC処理はJavaVMが実行する処理であり、実行中は全てのJavaアプリに関係する動作が停止する。特に、ヒープ領域中のNew領域だけではなくOld領域とPermanent領域に存在するオブジェクトも削除するFullGCの場合、停止時間が長くなる。 Conventionally, Java (registered trademark) is widely known as an execution environment of an application (hereinafter referred to as an application) that operates on an image forming apparatus (MFP). In this execution environment, an application written in the Java language (hereinafter referred to as a Java application) operates on the Java Virtual Machine (Java VM). When a Java application uses memory, it makes a memory request to the Java VM. JavaVM reserves a fixed area in advance as a memory area (Java heap area) that can be used by the Java application from the memory area of the MFP, and if a memory request is received from the Java application, is there a free space in the Java heap area? Confirm. If there is a free space, the Java VM makes the memory area available to the Java application according to the request from the Java application. On the other hand, when there is no free space in the Java heap area, the Java VM generates an exception (OutException) called OutOfMemoryError, and notifies the Java application of the exception. When this OutOfMemoryError occurs, a log file called a heap dump file is generally generated in order to identify the cause of OutOfMemoryError. This heap dump file is a file representing the state in the Java heap area, and by analyzing this file, the cause of OutOfMemoryError can be specified. However, in order to generate this heap dump file, it is necessary to perform a garbage collection (GC) process before generating the heap dump file in order to accurately know the memory usage status of the Java heap area. This GC process is a process executed by the Java VM, and operations related to all Java applications are stopped during the execution. In particular, in the case of FullGC which deletes not only the New area in the heap area but also objects existing in the Old area and the Permanent area, the stop time becomes long.
そのため、OutOfMemoryError発生時に毎回ヒープダンプファイルを生成すると、頻繁にシステム全体が停止してしまうという課題がある。特許文献1には、特定の種類の例外が発生したときのみログファイルを生成する技術が提案されている。
Therefore, if a heap dump file is generated every time OutOfMemoryError occurs, there is a problem that the entire system frequently stops.
しかしながら、上記従来技術には以下に記載する問題がある。上記従来技術では、例外の種類に応じてヒープダンプファイルの生成の有無を切り替えることが可能となる。しかし、上記従来技術では、例外の種類により生成の有無を切り替えるため、同じ種類の例外が短時間に発生したときに、ヒープダンプファイルの生成の有無を切り替えることができず、重複してヒープダンプファイルを生成してしまうという課題がある。ヒープダンプファイルの生成の有無を切り替える必要がある状況として、例えば次のような状況がある。 However, the above prior art has the following problems. In the above prior art, it is possible to switch whether heap dump files are generated according to the type of exception. However, in the above prior art, since the presence / absence of generation is switched depending on the type of exception, when the same type of exception occurs in a short time, it is not possible to switch whether heap dump file is generated. There is a problem of generating. As a situation where it is necessary to switch whether heap dump files are generated, for example, there are the following situations.
MFP上で動作するJavaアプリを作成した場合、アプリ作成者は、このJavaアプリが使用する最大メモリ使用量を宣言する必要がある。なお、最大メモリ使用量は、Javaアプリに同梱するMANIFESTファイルというアプリの属性を記載するファイルに記載される。この最大メモリ使用量は、MFP上で動作するJavaアプリの合計メモリ量が、MFPで利用可能なJavaアプリのメモリ量を超えないように、Javaアプリのインストールを制限するために利用する。 When a Java application that operates on the MFP is created, the application creator needs to declare the maximum memory usage amount used by the Java application. Note that the maximum memory use amount is described in a file that describes the attribute of the application called a MANIFEST file bundled with the Java application. This maximum memory usage is used to restrict the installation of the Java application so that the total memory amount of the Java application operating on the MFP does not exceed the memory amount of the Java application that can be used in the MFP.
最大使用メモリ量を調べるために、アプリ作成者は最大メモリ使用量測定ツール(以下、測定ツールと称する。)というServletタイプのJavaアプリをMFP上で動作させる。この測定ツールは、アプリ作成者が設定する推定メモリ量以外のメモリ領域を利用し、空き容量を推定メモリ量だけに変更するツールである。この測定ツールを用いてアプリ作成者は作成したJavaアプリのOutOfMemoryErrorが発生しない最大の推定メモリ量を決定する。しかし、当該決定においては、何度もOutOfMemoryErrorを発生させる必要がある。そのため、メモリリーク等の障害によるOutOfMemory発生時はヒープダンプファイルを生成したいが、最大使用メモリ量を決定するために故意に発生させたOutOfMemoryError発生時はファイルの生成を行いたくないという状況がある。上記従来技術では、このような状況に対応することができない。 In order to check the maximum memory usage, the application creator operates a servlet type Java application called a maximum memory usage measurement tool (hereinafter referred to as a measurement tool) on the MFP. This measurement tool is a tool that uses a memory area other than the estimated memory amount set by the application creator, and changes the free capacity to only the estimated memory amount. Using this measurement tool, the application creator determines the maximum estimated memory amount that does not generate an OutOfMemoryError of the created Java application. However, it is necessary to generate OutOfMemoryError many times in the determination. Therefore, there is a situation where it is desired to generate a heap dump file when OutOfMemory occurs due to a failure such as a memory leak, but does not want to generate a file when OutOfMemoryError that is intentionally generated to determine the maximum amount of memory used. The above prior art cannot cope with such a situation.
本発明は、上述の問題に鑑みて成されたものであり、ユーザ操作を必要とすることなく、メモリ不足が発生した場合に必要なときのみダンプファイルを出力する仕組みを提供することを目的とする。 The present invention has been made in view of the above problems, and an object thereof is to provide a mechanism for outputting a dump file only when necessary when a memory shortage occurs without requiring a user operation. To do.
本発明は、情報処理装置であって、アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御手段と、前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行手段と、前記実行手段によってGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定手段と、前記判定手段による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行手段による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成手段とを備えることを特徴とする。 The present invention is an information processing apparatus that secures a memory area according to a memory request from an application and generates an exception if the memory area cannot be secured, and secures it in another application when the exception occurs. An execution unit that executes a GC process for releasing a memory area that is no longer needed and rearranges the memory area, and when the GC process is executed by the execution unit, based on information stored in the information processing apparatus A determination unit that determines whether or not the exception occurs in the application development stage; and the execution unit that determines that the exception occurs in the application development stage based on a determination result by the determination unit. The heap dump file indicating the state of the memory after executing the GC process is not generated, and the application If the occurrence of the exception in the application development stage, characterized in that it comprises generating means for generating the heap dump file.
本発明によれば、ユーザ操作を必要とすることなく、メモリ不足が発生した場合に必要なときのみダンプファイルを出力することができる。 According to the present invention, a dump file can be output only when necessary when a memory shortage occurs without requiring a user operation.
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the present invention according to the claims, and all combinations of features described in the present embodiments are not necessarily essential to the solution means of the present invention. .
<第1の実施形態>
<画像形成装置の構成>
以下では、図1乃至図8を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る画像形成装置100のコントローラユニットについて説明する。ここでは、本発明を適用することができる情報処理装置の一例として画像形成装置100について説明する。
<First Embodiment>
<Configuration of image forming apparatus>
In the following, a first embodiment of the present invention will be described with reference to FIGS. First, a controller unit of the
画像形成装置100は、コントローラユニット120、操作部106、スキャナ116、及びプリンタ118を備える。コントローラユニット120は、CPU101、RAM102、ROM103、HDD104、操作部I/F105、ネットワーク部107、イメージバスI/F109、電源管理部110、RIP113、デバイスI/F114、及び画像処理部119を備える。
The
コントローラユニット120は、画像情報やデバイス情報の入出力を行うだけではなく、装置全体の制御や、ネットワークを介して外部から提供されるデータをプリント出力する制御を行う。また、ネットワークを介した電子メール送信機能を含む通信機能における制御も行う。
The
CPU101は、ROM103に格納されているブートプログラムに基づきシステムを起動し、このシステム上でHDD(ハードディスクドライブ)104に格納されている制御プログラムを読み出してRAM102をワークエリアとして各種処理を実行する。この制御プログラムにより、Javaプログラムなどの制御を実行することが可能である。HDD104には、上記各種制御プログラムが格納されるとともに、画像データや後述するネットワーク部107が有する全ての通信手法に関する情報を格納する。
The
CPU101には、RAM102、ROM103、HDD104がシステムバス111を介して接続されている。さらに、操作部I/F105、ネットワーク部107、イメージバスI/F109、及び電源管理部110がシステムバス111を介して接続されている。
A
操作部I/F105は、操作部106とコントローラユニット120との間のインターフェースであり、操作部106に表示する画像データの操作部106への転送、操作部106における操作入力により発生した信号のCPU101への転送などを行う。操作部106は、画像処理に関する各機能における現在の設定状態、各機能に関する設定情報を入力するための情報入力画面などを表示するための表示部、ユーザが各機能に対する設定情報を入力するキーなどを含む入力部を有する。
The operation unit I /
電源管理部110は、画像形成装置100の電源OFFと電源ONの管理を行う。なお、電源ONを検知した場合、上述のように、CPU101は、ROM103のブートプログラムに基づきシステムを起動し、このシステム上でHDD104に格納されている制御プログラムを実行する。
The
ネットワーク部107は、LAN108に接続され、LAN108を介した情報の入出力を行う。LAN回線にwebサーバや外部装置400が接続されている場合は、そのサーバからLAN108を介して情報を取得することが可能である。また、LAN回線内のプロキシサーバなどを介して、インターネットに接続し、インターネット上のwebサーバからwebコンテンツを取得することも可能である。
The
イメージバスI/F109は、システムバス111と、画像バス112とを接続し、データ構造を変換するバスブリッジである。画像バス112は、画像データを高速で転送可能なPCIバス又はIEEE1394規定に従うバスから構成される。画像バス112には、RIP(ラスタイメージプロセッサ)113、デバイスI/F114及び画像処理部119が接続されている。
The image bus I /
RIP113は、PDLコードをビットマップイメージに展開する。デバイスI/F114は、画像入出力デバイスであるスキャナ116やプリンタ118とコントローラユニット120とを接続し、画像データの同期系/非同期系の変換を行う。ここでは、デバイスI/F114とスキャナ116とがケーブル115を介して、デバイスI/F114とプリンタ118とがケーブル117を介してそれぞれ接続されている。
The
画像処理部119は、多値画像データに対してJPEG、二値画像データに対してJBIG、MMR、MHなどの圧縮伸張処理を行う。また、入力画像データや出力画面に対して、プリンタの補正や解像度変換などの補正、加工、編集を行う。このように、コントローラユニット120のCPU101は、各制御プログラムに基づき、システムバス111に接続される各種デバイスとのアクセスを総括的に制御するととともに、デバイスI/F114を介してスキャナ116から画像情報を読み込む。また、読み込んだ画像情報に対して所定の処理を施した後に当該画像情報をデバイスI/F114を介してプリンタ118に出力するなどの制御を行う。さらに、ネットワーク部107を通じて取得したHTMLデータや画像データの解析・変換処理を行い、HDD104へ保存、又は操作部106での表示制御を行う。
The
<ソフトウェア構成>
次に、図2を参照して、画像形成装置100のCPU101やHDD104などの各ハードウェア上で動作するソフトウェアのモジュール構成について説明する。なお、これらの各モジュールにおける処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。また、各処理を実行することで生成される全ての情報は、RAM102又はHDD104に格納する。なお、このような各モジュールにおける処理は、以降でも同様であるため、以降では記載を省略する。
<Software configuration>
Next, a module configuration of software that operates on each hardware such as the
OS201は、メモリ管理、入出力管理、及びプロセス管理を行うモジュールであり、一般的なOSと同様の処理を行う。JavaVM202は、ROM103又はHDD104に格納されているJavaバイトコードを実行することでJavaプログラムを動作させる仮想マシンである。
The
アプリプラットフォーム203は、単一のJavaVM202上で少なくとも1つ以上のJavaアプリケーション(以下、Javaアプリ又はアプリと称する。)の起動、停止、インストール、アンインストールといったアプリのライフサイクルの管理・実行を行うモジュールである。また、アプリプラットフォーム203は、アプリA204やアプリB205で共通に利用するライブラリやサービスを有する。
The
アプリA204とアプリB205は、アプリプラットフォーム203上で動作するJavaプログラムのバイトコードであり、アプリプラットフォーム203が有するライブラリやサービスを利用して動作する。また、アプリA204とアプリB205は、個別に画像形成装置100にインストールして、アプリプラットフォーム203で起動することが可能である。アプリC206は、Javaアプリ以外のアプリプログラム、例えば、C言語のアプリであり、OS201上で動作する。
The
<JavaVM202とプラットフォーム203の処理>
次に、図3を参照して、JavaVM202とアプリプラットフォーム203の詳細な処理について説明する。JavaVM202は、バイトコード実行部301、クラスローダ管理部302、GC実行部303、メモリ制御部304、ヒープダンプファイル情報生成部305、及びOutOfMemoryError発生部306を備える。アプリプラットフォーム203は、アプリ管理部307、ヒープダンプファイル生成判定部308、ヒープダンプファイル生成実行部309を備える。
<Processing of
Next, detailed processing of the
アプリ管理部307は、Javaアプリのインストール、起動、停止、アンインストールといったアプリのライフサイクルの管理・実行を行うためのものであり、一般的なOSGiと同じ処理を行う。バイトコード実行部301は、アプリ管理部307で起動したアプリのバイトコードを解釈し、アプリの処理を実行する。また、バイトコード実行部301は、アプリのオブジェクト生成などの処理でJavaヒープメモリを利用する場合は、メモリ制御部304にメモリ利用要求を送信する。
The
クラスローダ管理部302は、クラスローダの生成と管理を行うと共に、Javaのクラスを動的にロードし、バイトコード実行部301で利用可能にする。また、クラスローダ管理部302は、アプリ管理部307で起動したアプリの利用するライブラリやサービスのクラスがロードされていない場合、このクラスをロードし、利用可能にする。
The class
メモリ制御部304は、メモリ利用要求を受信すると、Javaヒープメモリ領域(以下、メモリ領域と称する。)の利用状況を調べる。そしてメモリ制御部304は、空き領域があればこのメモリ領域を返し、空き領域がなければOutOfMemoryError発生部306にOutOfMemoryErrorの発生を要求する。また、メモリ制御部304は、Javaアプリのどのオブジェクトがどれくらいのメモリを利用しているのかを示す情報をHDD104に格納する。また、メモリ制御部304は、GC実行部303にGC(Garbage Collection)処理の実行要求を行う。GC処理の詳細については図6を用いて後述する。さらに、メモリ制御部304は、ヒープダンプファイル生成判定部308にヒープダンプファイルの生成判定要求を行い、ヒープダンプファイル情報生成部305にヒープダンプファイル情報生成要求を行う。GC実行部303は、メモリ領域を利用しているJavaオブジェクトのうち、使用されなくなったものを削除するためにGC処理を行う。GC処理は、メモリ制御部304からのGC実行要求又は一定以上のメモリ領域が利用された場合に実行される。
When the
OutOfMemoryError発生部306は、OutOfMemoryErrorの例外を発生させ、メモリ要求元アプリにこの例外を通知する。例外の生成とアプリへの通知の詳細処理は、一般的な仕組みと同じであるため記載は省略する。ヒープダンプファイル生成判定部308は、ヒープダンプファイルを生成するかどうかを後述の条件により判定する。ヒープダンプファイル情報生成部305は、HDD104からメモリ領域の状態を表す情報を取得する。ヒープダンプファイル生成実行部309は、ヒープダンプファイル情報生成部305で取得した情報を元に、ヒープダンプファイルを生成する。
The
<GC処理>
次に、図6を参照して、GC実行部303によるGC処理について説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。ここで、GC処理とは、Javaアプリケーション等のプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する処理を示す。
<GC processing>
Next, the GC process performed by the
まずS201で、GC実行部303は、他の処理を停止し、一般的な“stop the world”といわれる画像形成装置100のシステム全体が停止する状態に制御する。続いてS202で、GC実行部303は、メモリ領域内のGC対象であるオブジェクトの中で参照されていない(使用されていない)オブジェクトを検索する。この結果S203で、GC実行部303は、参照されていないオブジェクトが存在すれば、このオブジェクトを全て削除する。
First, in step S <b> 201, the
次にS204で、GC実行部303は、メモリ領域の断片化(フラグメンテーション)を防ぐために、メモリ領域の再配置を行う。続いてS205で、GC実行部303は、メモリ領域の再配置後のメモリ領域の状態(どのオブジェクトがどれくらいのメモリを利用しているかの状態)をHDD104に格納する。なお、このS205でHDD104に格納した情報が、ヒープダンプファイルに記載する内容となる。そしてS206で、GC実行部303は、S201で停止した処理の実行を再開し、システム全体を再開する。
In step S204, the
<最大使用量>
ここで、図8を参照して、測定ツールを用いたアプリ作成者による作成したJavaアプリの最大使用メモリ量を調べる手法の一例について説明する。
<Maximum usage>
Here, with reference to FIG. 8, an example of a method for examining the maximum memory usage of the Java application created by the application creator using the measurement tool will be described.
まず、作成したJavaアプリと測定ツールをMFP等の画像形成装置にインストールする。そして、測定ツールで推定メモリ量を設定する(801から802になる)。この後に、開発用のJavaアプリを動作させて、メモリ不足によって発生するOutOfMemoryErrorが発生するかどうかを確認する(803)。ここでもし、OutOfMemoryErrorが発生すれば、開発用のJavaアプリは推定メモリ量よりも大きいサイズのメモリ量を使用していることが分かる(804)。そのためアプリ作成者は、設定した推定メモリ量よりもさらに小さい値の推定メモリ量を測定ツールに設定し、再度開発用のJavaアプリを動作させる。 First, the created Java application and measurement tool are installed in an image forming apparatus such as an MFP. Then, the estimated memory amount is set with the measurement tool (from 801 to 802). Thereafter, the development Java application is operated to check whether OutOfMemoryError generated due to a memory shortage occurs (803). Here, if OutOfMemoryError occurs, it can be understood that the Java application for development uses a memory size larger than the estimated memory size (804). Therefore, the application creator sets an estimated memory amount that is smaller than the set estimated memory amount in the measurement tool, and operates the development Java application again.
一方、OutOfMemoryErrorが発生しなかった場合は、開発用のJavaアプリは推定メモリ量よりも小さいサイズのメモリ量を使用していることが分かる(805)。そのためアプリ作成者は、設定した推定メモリ量よりもさらに大きい値の推定メモリ量を測定ツールに設定し、再度開発用のJavaアプリを動作させる。アプリ作成者は、これらの操作を繰り返し行い、OutOfMemoryErrorが発生しない最大の推定メモリ量を決定し、この値をMANIFESTファイルに最大使用メモリ量として記載する。 On the other hand, if OutOfMemoryError does not occur, it can be seen that the development Java application uses a memory size smaller than the estimated memory size (805). Therefore, the application creator sets an estimated memory amount that is larger than the set estimated memory amount in the measurement tool, and operates the development Java application again. The application creator repeats these operations, determines the maximum estimated memory amount that does not generate OutOfMemoryError, and describes this value as the maximum used memory amount in the MANIFEST file.
したがって、上記測定ツールを用いた最大使用メモリ量の調整段階において、OutOfMemoryErrorが発生するごとにヒープダンプファイルを生成して出力することは効率が著しく低下してしまう。そこで、本実施形態では、ヒープダンプファイルの生成の有無を好適に切り替える。なお、本実施形態の手法を用いれば、操作者等の入力を必要とすることなく、ヒープダンプファイルの生成の有無を切り替えることができる。 Therefore, generating and outputting a heap dump file every time OutOfMemoryError occurs in the adjustment stage of the maximum memory usage using the measurement tool, the efficiency is significantly reduced. Therefore, in the present embodiment, whether or not heap dump files are generated is suitably switched. In addition, if the method of this embodiment is used, the presence or absence of a heap dump file generation can be switched without requiring input from an operator or the like.
<切替処理>
次に、図5を参照して、JavaVM202とアプリプラットフォーム203の各モジュールにより、OutOfMemoryErrorが発生した場合に、状況に応じてヒープダンプファイルの生成有無を切り替える切替処理について説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。
<Switching process>
Next, with reference to FIG. 5, a description will be given of a switching process for switching the presence / absence of a heap dump file depending on the situation when an OutOfMemoryError is generated by each module of the
メモリ制御部304は、バイトコード実行部301によるJavaアプリのメモリ要求に対して、要求のメモリを確保できない場合、OutOfMemoryError発生部306にOutOfMemory発生要求を通知する。OutOfMemory発生要求を受信すると、S101で、OutOfMemoryError発生部306は、OutOfMemoryErrorの例外を発生させる。メモリ制御部304は、OutOfMemoryError発生部306によるOutOfMemoryの発生処理が完了すると、GC実行部303にGC処理の実行要求を送信する。GC処理の実行要求を受信すると、S102で、GC実行部303は、図6を用いて説明したGC処理を実行する。その後S103で、メモリ制御部304は、ヒープダンプファイルの生成判定要求を、ヒープダンプファイル生成判定部308に送信する。
In response to a Java application memory request from the
ヒープダンプファイルの生成判定要求を受信すると、S104乃至S106で、ヒープダンプファイル生成判定部308は、ヒープダンプファイルを生成するか否かを以下の条件から判定する。具体的には、S104乃至S106の判定において、Javaアプリの開発段階におけるOutOfMemoryErrorの発生であるか否かを確認して、ヒープダンプファイルを生成するか否かを決定している。なお、Javaアプリの開発段階ということは、通常は、画像形成装置100自体の開発は完了している。ここでは、一例として、3つの条件を用いる場合について説明する。
When a heap dump file generation determination request is received, in S104 to S106, the heap dump file
1つ目の条件は、画像形成装置100が製品の開発が完了しているか否かの判定である(S104)。製品の開発が完了しているか否かの情報(第1情報)は、ROM103に格納しているフェーズ情報を用いて判定することができる。当該フェーズ情報は、デフォルトは製品開発中であり、工場出荷時(画像形成装置100の製品販売時)にのみ製品開発中から開発完了に変更される。そのため、フェーズ情報は、ユーザが変更することができない。
The first condition is determination as to whether or not the
具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行うのは、工場出荷後の画像形成装置100を用いて行う。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S104の判定はYESとなる。一方、画像形成装置100の製品開発中にメモリリーク等でOutOfMemoryErrorが発生した場合、S104の判定はNOとなる。
A specific example will be described. The application creator uses the measurement tool to measure the maximum memory usage of the created Java application for development using the
2つ目の条件は、Javaアプリのインストール時にコード署名認証を行うか否かの判定である(S105)。このコード署名認証を行うか否かは、HDD104に格納されているコード署名認証フラグを参照して判定する。このコード署名認証フラグ(第2情報)は、認証ありと認証なしの設定値があり、アプリ作成者が自由に変更することが可能である。
The second condition is determination as to whether or not to perform code signature authentication when installing the Java application (S105). Whether or not to perform this code signature authentication is determined with reference to a code signature authentication flag stored in the
ここで、図7を参照して、コード署名認証フラグの利用方法について説明する。Javaアプリは開発用と製品用の2種類あり、図7に示すように構成が異なる。製品用のJavaアプリを作成する場合、701に示すように、一般的なコードサイン証明書を用いたアプリ配布と同じ手順で作成する。具体的には、作成した3つのファイル(JavaプログラムとMANIFESTファイルと製品用のライセンスファイル)に対するハッシュ値を取り、このハッシュ値を暗号化する。また、サーバ(認証局)からコード署名証明書を取得する。そして、暗号化したハッシュ値と3つのファイルとコード署名証明書を1つのjarファイルとしてまとめて、Javaアプリとする。 Here, a method of using the code signature authentication flag will be described with reference to FIG. There are two types of Java apps, one for development and one for products, and the configuration is different as shown in FIG. When creating a Java application for a product, as shown in 701, it is created in the same procedure as application distribution using a general code sign certificate. Specifically, hash values for the three created files (Java program, MANIFEST file, and product license file) are taken, and the hash values are encrypted. Also, a code signing certificate is acquired from the server (certificate authority). Then, the encrypted hash value, the three files, and the code signature certificate are collected as one jar file to be a Java application.
一方、開発用のJavaアプリを作成する場合、702に示すように、作成した3つのファイル(JavaプログラムとMANIFESTファイルと開発用のライセンスファイル)を1つのjarファイルとしてまとめ、開発用Javaアプリを作成する。この開発用Javaアプリは、コード署名認証を行っていないため、画像形成装置100のHDD104に格納されているコード署名認証フラグが認証ありの場合、画像形成装置100にインストールすることができない。具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行う場合、開発用のJavaアプリを画像形成装置100にインストールするため、コード署名認証フラグを認証なしにしている。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S105の判定はNOとなる。一方、MFPの工場出荷後は市販のJavaアプリしかインストールできなくするため、OutOfMemoryError発生時のS105の判定はYESとなる。
On the other hand, when creating a development Java application, as shown in 702, the created three files (Java program, MANIFEST file, and development license file) are combined into one jar file to create the development Java application. To do. Since the development Java application does not perform code signature authentication, it cannot be installed in the
3つ目の条件は、Javaアプリに含まれるライセンスファイルのチェックを行うか否かの判定である(S106)。このライセンスファイルのチェックを行うか否かは、HDD104に格納されているライセンスチェックフラグを参照して判定する。このライセンスチェックフラグ(第3情報)は、チェックありとチェックなしの設定値があり、アプリ作成者が自由に変更することが可能である。アプリ作成者が図7のようにして作成したJavaアプリには、ライセンスファイルとして製品用ライセンス又は開発用ライセンスの情報を含む。この開発用ライセンスの情報を含むJavaアプリは、画像形成装置100のHDD104に格納されているライセンスチェックフラグがチェックありの場合は、MFPにインストールすることができない。
The third condition is determination as to whether or not to check the license file included in the Java application (S106). Whether or not to check the license file is determined with reference to a license check flag stored in the
具体例を説明する。アプリ作成者が、作成した開発用のJavaアプリの最大メモリ使用量を、測定ツールを用いて測定を行う場合、開発用のJavaアプリを画像形成装置100にインストールするため、ライセンスチェックフラグをチェックなしにしている。そのため、測定ツールによりOutOfMemoryErrorが発生した場合、S106の判定はNOとなる。一方、画像形成装置100の工場出荷後は市販のJavaアプリをインストールした場合、ライセンスチェックを必ず行うようにするため、OutOfMemoryError発生時のS106の判定はYESとなる。
A specific example will be described. When the application creator measures the maximum memory usage of the created Java application for development by using a measurement tool, the license check flag is not checked in order to install the development Java application in the image forming apparatus 100 I have to. Therefore, when OutOfMemoryError is generated by the measurement tool, the determination in S106 is NO. On the other hand, when a commercially available Java application is installed after the
ヒープダンプファイル生成判定部308は、上記の3つの判定結果においてS104がYESで、かつ、S105及びS106がNOの場合のみはS107に進み、メモリ制御部304にヒープダンプファイルの生成なしという判定結果を送信し、S109に進む。一方、ヒープダンプファイル生成判定部308は、上記判定結果以外の場合はS108に進み、メモリ制御部304にヒープダンプファイルの生成ありという判定結果を送信し、S109に進む。
The heap dump file
判定結果を受信すると、S109で、メモリ制御部304は、この結果がヒープダンプファイルの生成ありを示すか否かを判定する。この判定結果がヒープダンプファイルの生成なしの場合は、ヒープダンプファイルを出力することなく終了する。一方、この判定結果がヒープダンプファイルの生成ありの場合はS110に進み、メモリ制御部304は、ヒープダンプファイル情報生成部305にヒープダンプファイル情報の生成要求を送信する。これを受信したヒープダンプファイル情報生成部305は、現在のヒープメモリ状況の情報を取得する。続いて、S111で、ヒープダンプファイル情報生成部305は、取得した内容をヒープダンプファイル生成実行部309に送信する。これを受信したヒープダンプファイル生成実行部309は、S112で、受信した内容のヒープダンプファイルを生成する。これにより、図4のようなヒープダンプファイルが生成される。なお、図4のヒープダンプファイルでは、1行ごとにオブジェクトID、オブジェクトを生成したクラス、オブジェクトサイズ、生成したオブジェクトへの参照を表示している。
When the determination result is received, in S109, the
以上説明したように、本実施形態に係る情報処理装置(画像形成装置100)は、Javaアプリからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させる。また、例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放しメモリ領域を再配置するGC処理を実行する。さらに、アプリケーションの開発段階における例外の発生であれば、GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、アプリケーションの開発段階における例外の発生でなければ、ヒープダンプファイルの生成を行う。このように、同じOutOfMemoryが発生した場合であっても3つの条件の判定結果によってヒープダンプファイルの生成有無を切り替えることができる。本実施形態によれば、3つの条件が所定の判定結果の場合(S104がYESで、かつ、S105及びS106がNOの場合)は、アプリ作成者が測定ツールを用いてアプリの最大使用メモリ量を調べる場合であると判定し、ヒープダンプファイルを生成しない。ヒープダンプファイルを生成しない場合、ヒープダンプファイル生成前に行うGC処理によりシステム全体が停止することがないため、ユーザ(アプリ作成者)の操作性が低下することを防ぐことができる。また、ヒープダンプファイルを生成しない場合、画像形成装置100のヒープダンプファイル生成に画像形成装置100のリソース(HDDやメモリ等)を使わないため、システム負荷を減らすことができる。なお、上記3つの条件は、ヒープダンプファイルの生成有無そのものを意味する条件ではない。そのためユーザ(アプリ開発者)は、測定ツールをインストールするための設定を行うだけであり、生成有無のスイッチを意識して切り替える必要がない。また、3つの条件の中に製品開発中かどうかの判定条件がある。これにより、MFPの製品開発中に他の2つの条件に一致する状況を作ったとしても、ヒープダンプファイルの生成を行うことができ、Javaアプリのメモリリークなどの障害調査も効率的に行うことができる。
As described above, the information processing apparatus (image forming apparatus 100) according to the present embodiment secures a memory area in accordance with a memory request from the Java application, and generates an exception if the memory area cannot be secured. Further, when an exception occurs, GC processing is performed to release a memory area that is no longer needed and is allocated by another application and rearrange the memory area. Furthermore, if an exception occurs in the application development stage, a heap dump file indicating the state of the memory after executing the GC process is not generated. If no exception occurs in the application development stage, a heap dump file is generated. I do. As described above, even when the same OutOfMemory is generated, it is possible to switch whether heap dump files are generated or not according to the determination results of the three conditions. According to the present embodiment, when the three conditions are predetermined determination results (when S104 is YES and S105 and S106 are NO), the application creator uses the measurement tool to determine the maximum amount of memory used by the application. It is determined that this is a case of checking, and a heap dump file is not generated. When the heap dump file is not generated, the entire system is not stopped by the GC process performed before generating the heap dump file, so that the operability of the user (app creator) can be prevented from being lowered. Further, when a heap dump file is not generated, the system load can be reduced because resources (HDD, memory, etc.) of the
<変形例>
また、本発明は上記実施形態に限らず様々な変形が可能である。上記実施形態では、ヒープダンプファイルの生成有無を3つの条件(S104〜106)を用いて判定し、S104がYESで、かつ、S105及びS106がNOの場合にヒープダンプファイル生成を行わないこととした。しかし、コード署名認証を行うかどうかの判定(S105)とライセンスファイルのチェックを行うかどうかの判定(S106)は、測定ツールを使う場合に両方とも条件に当てはまる設定に変更することもできる。そのため、S105とS106の条件は、どちらか一方の条件による判定でもよい。この場合、S104がYESで、かつ、S105がNOの場合、又は、S104がYESで、かつ、S106がNOの場合に、ヒープダンプファイルの生成を行わないこととしてもよい。また、上記3つの条件のうち、少なくとも1つの条件を用いて当該判定を行ってもよい。
<Modification>
Further, the present invention is not limited to the above embodiment, and various modifications can be made. In the above embodiment, whether or not a heap dump file is generated is determined using three conditions (S104 to S106), and if S104 is YES and S105 and S106 are NO, heap dump file generation is not performed. However, both the determination of whether to perform code signature authentication (S105) and the determination of whether to check the license file (S106) can be changed to settings that meet the conditions when using the measurement tool. Therefore, the conditions of S105 and S106 may be determined based on one of the conditions. In this case, when S104 is YES and S105 is NO, or when S104 is YES and S106 is NO, heap dump file generation may not be performed. Further, the determination may be performed using at least one of the three conditions.
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、OutOfMemoryErrorが発生したときにヒープダンプファイルを生成するか否かを3つの条件を用いて判定し、所定の判定結果とならない場合はヒープダンプファイルを生成することとした。しかし、この3つの条件だけではなく、別の条件を追加してもよい。
<Second Embodiment>
Hereinafter, a second embodiment of the present invention will be described. In the first embodiment, whether or not a heap dump file is generated when OutOfMemoryError occurs is determined using three conditions, and if a predetermined determination result is not obtained, a heap dump file is generated. However, in addition to these three conditions, another condition may be added.
図9を参照して、別の条件を追加する場合の切替処理について説明する。なお、基本的な処理や制御は第1の実施形態と同じであるため、第1の実施形態と異なる点のみを説明する。以下で説明する処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして処理を実行することで実現される。
With reference to FIG. 9, the switching process in the case of adding another condition will be described. Since basic processing and control are the same as those in the first embodiment, only differences from the first embodiment will be described. The processing described below is realized by reading a program stored in the
上記第1の実施形態では、OutOfMemoryErrorが発生したときにヒープダンプファイルを生成するかどうかの3つの条件で判定し、所定の判定結果とならない場合はヒープダンプファイルを生成することとした(S108)。しかし、画像形成装置100で動作するJavaアプリは、同じJavaメモリ領域を使っているため、あるJavaアプリでOutOfMemoryErrorが発生すると、別のJavaアプリでもOutOfMemoryErrorが発生する可能性が高い。この場合、所定の期間内において、同じ原因で何度もヒープダンプファイルが生成されてしまうという問題がある。
In the first embodiment, the determination is made based on the three conditions of whether or not a heap dump file is generated when OutOfMemoryError occurs. If the predetermined determination result is not obtained, the heap dump file is generated (S108). However, since the Java application operating on the
そこで、本実施形態によれば、図9に示すように、S108の処理の前に「所定期間内における初回のOutOfMemoryErrorかどうか」をヒープダンプファイル生成判定部308で判定するS301の処理を追加する。そして、この判定結果が初回のOutOfMemorErrorでなければ、ヒープダンプファイルを生成なしと判定してS107に進み、判定結果が初回の場合はヒープダンプファイルを生成することとしてS108に進む。なお、初回のOutOfMemoryErrorかどうかの情報(第4情報)はHDD104に保持しておき、ヒープダンプファイル生成実行部309がS112によるヒープダンプファイルを生成後に、初回ではないという情報に更新することにより実現できる。また、所定期間が経過すると、初回であるという情報に戻すことが望ましい。これにより、初回のOutOfMemoryError発生時以外は、所定期間において、ヒープダンプファイルの生成を行わないように制御することができる。なお、上記所定期間については、画像形成装置100に予め設定されてもよいし、操作者によって設定されてもよい。当該設定情報については、上記第4情報と関連付けてHDD104に保持される。
Therefore, according to the present embodiment, as shown in FIG. 9, the process of S301 for determining whether or not it is the first OutOfMemoryError within a predetermined period by the heap dump file
また、上記第1の実施形態では、画像形成装置100が製品開発中か否かの判定を行い(S104)、開発中でない場合、ヒープダンプファイルを生成することと判定した(S108)。しかし、画像形成装置100の製品開発が完了する前に、製品のシミュレータを用いて、作成したJavaアプリの最大使用メモリ量を調べたいこともある。この場合、S104の判定が常にNOとなるため、OutOfMemoryError発生時に毎回ヒープダンプファイルを生成されてしまうという問題がある。
In the first embodiment, it is determined whether or not the
そこで、本実施形態によれば、S104の後ろで「画像形成装置100はシミュレータであるか否か」をヒープダンプファイル生成判定部308で判定するS302の処理を追加する。そして、この判定結果がシミュレータではない場合(製品の場合)は従来と同じくヒープダンプファイルを生成し(S108)、シミュレータの場合はS105の判定に進む。なお、シミュレータか否かの情報(第5情報)はROM103に予め格納しておき、ヒープダンプファイル生成判定部308がこの値を参照することで判定してもよい。これにより、MFPが製品開発中であっても、ヒープダンプファイルの生成を行わなくすることができる。
Therefore, according to the present embodiment, after S104, the process of S302 in which “the
以上説明したように、本実施形態に係る画像形成装置は、2つの条件(S301とS302)を追加することで、無駄なヒープダンプファイルが生成されることをさらに防ぐことが可能となる。なお、上記2つの条件(S301とS302)は、何れか一方のみを追加するようにしてもよい。 As described above, the image forming apparatus according to the present embodiment can further prevent a useless heap dump file from being generated by adding two conditions (S301 and S302). Note that only one of the two conditions (S301 and S302) may be added.
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other embodiments>
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
101:CPU、102:RAM、103:ROM、104:HDD、202:JavaVM、203:アプリプラットフォーム、301:バイトコード実行部、302:クラスローダ管理部、303:GC実行部、304:メモリ制御部、305:ヒープダンプファイル情報生成部、306:OutOfMemoryError発生部、307:アプリ管理部、308:ヒープダンプファイル生成判定部、309:ヒープダンプファイル生成実行部 101: CPU, 102: RAM, 103: ROM, 104: HDD, 202: JavaVM, 203: Application platform, 301: Bytecode execution unit, 302: Class loader management unit, 303: GC execution unit, 304: Memory control unit 305: Heap dump file information generation unit 306: OutOfMemoryError generation unit 307: Application management unit 308: Heap dump file generation determination unit 309: Heap dump file generation execution unit
Claims (14)
アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御手段と、
前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行手段と、
前記実行手段によってGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定手段と、
前記判定手段による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行手段による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成手段と
を備えることを特徴とする情報処理装置。 An information processing apparatus,
A memory control means for allocating a memory area according to a memory request from an application and generating an exception if the memory area cannot be allocated;
When the exception occurs, execution means for executing a GC process for releasing a memory area that is no longer needed reserved by another application and rearranging the memory area;
When a GC process is executed by the execution unit, a determination unit that determines whether or not the exception has occurred in the application development stage based on information stored in the information processing apparatus;
If the exception occurs in the development stage of the application based on the determination result by the determination unit, the application does not generate a heap dump file indicating the state of the memory after executing the GC process by the execution unit. An information processing apparatus comprising: generating means for generating the heap dump file if the exception does not occur in the development stage.
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。 The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed,
When the first information indicates that the development of the information processing apparatus is completed, the determination unit determines that the exception has occurred in the application development stage, and the development of the information processing apparatus is 2. The information processing apparatus according to claim 1, wherein when the first information indicates that the application has not been completed, it is determined that the exception is not generated in the development stage of the application.
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記コード署名認証を行わないことを前記第2情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、又は、前記コード署名認証を行うことを前記第2情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。 The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not to perform code signature authentication when installing an application in the information processing apparatus Including second information indicating
If the first information indicates that the development of the information processing apparatus has been completed, and the second information indicates that the code signature authentication is not performed, the determination unit determines the application development stage. When the first information indicates that the development of the information processing apparatus has not been completed, or when the second information indicates that the code signature authentication is performed. The information processing apparatus according to claim 1, wherein it is determined that the exception does not occur in the application development stage.
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記ライセンスファイルのチェックを行わないことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、又は、前記ライセンスファイルのチェックを行うことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。 The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not to check a license file of an application that has made the memory request. Including third information to indicate,
In the case where the first information indicates that the development of the information processing apparatus is completed and the third information indicates that the license file is not checked, the determination unit is configured to develop the application. It is determined that the exception has occurred in the stage, and if the first information indicates that the development of the information processing apparatus has not been completed, or the third information indicates that the license file is to be checked The information processing apparatus according to claim 1, wherein the information processing apparatus determines that the exception does not occur in the application development stage.
前記判定手段は、前記情報処理装置の開発が完了していることを前記第1情報が示し、かつ、前記コード署名認証を行わないことを前記第2情報が示し、かつ、前記ライセンスファイルのチェックを行わないことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生であると判定し、前記情報処理装置の開発が完了していないことを前記第1情報が示す場合、前記コード署名認証を行うことを前記第2情報が示す場合、又は、前記ライセンスファイルのチェックを行うことを前記第3情報が示す場合は、前記アプリケーションの開発段階における前記例外の発生でないと判定することを特徴とする請求項1に記載の情報処理装置。 The information stored in the information processing apparatus includes first information indicating whether or not development of the information processing apparatus is completed, and whether or not code signature authentication is performed when an application is installed in the information processing apparatus And third information indicating whether or not to check the license file of the application that has made the memory request,
The determination means indicates that the first information indicates that the development of the information processing apparatus has been completed, and indicates that the second information indicates that the code signature authentication is not performed, and checks the license file. If the first information indicates that the exception has occurred in the application development stage, and the first information indicates that the development of the information processing apparatus has not been completed. If the second information indicates that the code signature authentication is to be performed, or if the third information indicates that the license file is to be checked, it is determined that the exception has not occurred in the application development stage. The information processing apparatus according to claim 1, wherein:
メモリ制御手段が、アプリケーションからのメモリ要求に従ってメモリ領域を確保し、確保できない場合には例外を発生させるメモリ制御工程と、
実行手段が、前記例外が発生すると、他のアプリケーションで確保している不要になったメモリ領域を解放し、メモリ領域を再配置するGC処理を実行する実行工程と、
判定手段が、前記実行工程でGC処理が実行されると、前記情報処理装置に格納されている情報に基づき、前記アプリケーションの開発段階における前記例外の発生であるか否かを判定する判定工程と、
生成手段が、前記判定工程による判定結果に基づき、前記アプリケーションの開発段階における前記例外の発生であれば、前記実行工程による前記GC処理を実行した後のメモリの状態を示すヒープダンプファイルの生成を行わず、前記アプリケーションの開発段階における前記例外の発生でなければ、前記ヒープダンプファイルの生成を行う生成工程と
を実行することを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus,
A memory control means for securing a memory area in accordance with a memory request from an application and generating an exception if the memory area cannot be secured;
An execution step of executing GC processing to release a memory area that is no longer needed and to relocate the memory area when the exception occurs, and when the exception occurs,
A determination step of determining whether or not the exception has occurred in the application development stage based on information stored in the information processing device when GC processing is executed in the execution step; ,
If the exception occurs in the application development stage based on the determination result in the determination step, the generation unit generates a heap dump file indicating the state of the memory after executing the GC processing in the execution step If the exception does not occur in the application development stage, a generation process for generating the heap dump file is executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014232941A JP2016095792A (en) | 2014-11-17 | 2014-11-17 | Information processing device, control method thereof, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014232941A JP2016095792A (en) | 2014-11-17 | 2014-11-17 | Information processing device, control method thereof, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016095792A true JP2016095792A (en) | 2016-05-26 |
Family
ID=56070347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014232941A Pending JP2016095792A (en) | 2014-11-17 | 2014-11-17 | Information processing device, control method thereof, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016095792A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460392A (en) * | 2018-10-10 | 2019-03-12 | 东软集团股份有限公司 | Journal file acquisition method, device, readable storage medium storing program for executing and electronic equipment |
GB2577955A (en) * | 2018-07-23 | 2020-04-15 | Canon Kk | Information processing apparatus, information processing method, computer program, and storage medium |
-
2014
- 2014-11-17 JP JP2014232941A patent/JP2016095792A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2577955A (en) * | 2018-07-23 | 2020-04-15 | Canon Kk | Information processing apparatus, information processing method, computer program, and storage medium |
GB2577955B (en) * | 2018-07-23 | 2021-02-17 | Canon Kk | Information processing apparatus, information processing method, computer program, and storage medium |
US11474855B2 (en) | 2018-07-23 | 2022-10-18 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium |
CN109460392A (en) * | 2018-10-10 | 2019-03-12 | 东软集团股份有限公司 | Journal file acquisition method, device, readable storage medium storing program for executing and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5599557B2 (en) | Information processing apparatus, license determination method, program, and recording medium | |
JP5387415B2 (en) | Virtual computer system, policy enforcement system, policy enforcement method, and virtual computer control program | |
US9542228B2 (en) | Image processing apparatus, control method thereof and storage medium | |
AU2011303103B2 (en) | Install method, apparatus | |
JP2010061230A (en) | Information processor and information processing method | |
US11140291B2 (en) | Information processing apparatus, control method thereof, and storage medium | |
JP2014170515A (en) | Device, information storage program, and information storage method | |
CN109660688B (en) | Information processing apparatus and control method thereof | |
JP2016095792A (en) | Information processing device, control method thereof, and program | |
JP5381059B2 (en) | Device, log recording control method, and program | |
JP6179200B2 (en) | Information processing apparatus, device, information processing system, information processing method, and information processing program | |
JP5013999B2 (en) | Image forming apparatus, program control method, and control program | |
US10545704B2 (en) | Image forming apparatus and control method to update an application in an image forming apparatus | |
US9588755B2 (en) | Information processing apparatus capable of controlling installation of application, method of controlling the same, and storage medium | |
CN116700998A (en) | Application program interface management method, terminal device and storage medium | |
US10606748B2 (en) | Apparatus and method for garbage collection on socket objects | |
JP2004334679A (en) | Information processor, program execution method of information processor, and storage medium recording the program execution method of information processor | |
JP6330933B2 (en) | Apparatus, information processing system, information processing method, and program | |
JP2009020863A (en) | Image forming apparatus, information processor, fault analysis support method, and fault analysis support program | |
US11397572B2 (en) | Image forming apparatus capable of executing extension application, method of controlling same, and storage medium | |
JP6089794B2 (en) | Apparatus, information processing system, information processing method, and program | |
JP2018192740A (en) | Image formation device, information processing method and program | |
JP2020177424A (en) | Information processor, control method thereof, and program | |
JP2010039689A (en) | Information processor | |
JP2014038586A (en) | Image forming apparatus and update processing method for the same |