【手続補正書】
【提出日】令和2年4月6日(2020.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
１つ以上のコンピュータシステムによって、１つ以上のプロセスによるヒープ使用量が閾値を上回っている時間の長さを判断するステップと、
前記時間の長さの間の前記１つ以上のプロセスのヒープ情報を決定するステップと含み、前記ヒープ情報は、前記時間の長さにおける複数の間隔の各々のヒープ使用量情報を含み、前記方法は、さらに、
前記時間の長さの間の前記１つ以上のプロセスのスレッド情報を決定するステップを含み、前記スレッド情報を決定するステップは、１つ以上のスレッドのクラスを決定するステップを含み、前記スレッド情報は、前記１つ以上のスレッドのクラスの各々について、前記複数の間隔の各々のスレッド強度情報を含み、前記方法は、さらに、
前記ヒープ情報を前記スレッド情報に相関させて、前記閾値を上回るヒープ使用量に対応する前記１つ以上のプロセスの１行以上のコードを特定するステップと、
前記１行以上のコードを特定することに応答して、前記１行以上のコードに関連する１つ以上のアクションを開始するステップとを含む、方法。
【請求項２】
前記ヒープ情報は、前記複数の間隔の各々のヒープ使用量季節因子を含み、
前記スレッド情報は、前記１つ以上のスレッドのクラスの各々について、前記複数の間隔の各々のスレッド強度季節因子を含む、請求項１に記載の方法。
【請求項３】
前記ヒープ情報を前記スレッド情報に相関させるステップは、
前記１つ以上のスレッドのクラスの各々について、前記複数の間隔のヒープ使用量季節因子と、スレッドのクラスおよび前記複数の間隔のスレッド強度季節因子とに基づいて、前記スレッドのクラスと前記閾値を上回るヒープ使用量との相関度合いを決定するステップと、
前記１つ以上のスレッドのクラスから、前記閾値を上回るヒープ使用量に対する相関度合いが前記１つ以上のスレッドのクラスの中で最も高い所与のスレッドのクラスを選択するステップと、
前記所与のスレッドのクラスに基づいて、前記１行以上のコードを特定するステップとを含む、請求項２に記載の方法。
【請求項４】
前記スレッドのクラスと前記閾値を上回るヒープ使用量との前記相関度合いを決定するステップは、
前記複数の間隔のヒープ使用量季節因子の平均を算出するステップと、
前記スレッドのクラスおよび前記複数の間隔のスレッド強度季節因子の平均を算出するステップと、
前記複数の間隔のヒープ使用量季節因子の分散を算出するステップと、
前記スレッドのクラスおよび前記複数の間隔のスレッド強度季節因子の分散を算出するステップと、
前記複数の間隔のヒープ使用量季節因子の平均、前記スレッドのクラスおよび前記複数の間隔のスレッド強度季節因子の平均、前記複数の間隔のヒープ使用量季節因子の分散、ならびに前記スレッドのクラスおよび前記複数の間隔のスレッド強度季節因子の分散に基づいて、前記相関度合いを算出するステップとを含む、請求項３に記載の方法。
【請求項５】
前記所与のスレッドのクラスに属する前記１つ以上のプロセスの各スレッドが、前記１行以上のコードを実行する、請求項３に記載の方法。
【請求項６】
前記時間の長さは、第１長さを有する期間の１つ以上のサイクルおよび第２長さを有する期間の１つ以上のサイクルにまたがるデータセット内に位置し、
前記第１長さを有する期間は、前記１つ以上のスレッドのクラスの各々の第１種別の平滑化後のヒープ使用量季節因子および第１種別の平滑化後のスレッド強度季節因子に各々が関連する第１の複数の季節に分割され、
前記第２長さを有する期間は、前記１つ以上のスレッドのクラスの各々の第２種別の平滑化後のヒープ使用量季節因子および第２種別の平滑化後のスレッド強度季節因子に各々が関連する第２の複数の季節に分割され、
前記複数の間隔の各々は、前記第１の複数の季節のうちの１つまたは前記第２の複数の季節のうちの１つに対応付けられ、
前記複数の間隔の各々について、間隔の前記ヒープ使用量季節因子は、前記間隔が対応付けられた前記第１の複数の季節のうちの１つまたは前記第２の複数の季節のうちの１つに関連する平滑化後のヒープ使用量季節因子に対応し、
前記複数の間隔の各々、前記１つ以上のスレッドのクラスの各々について、間隔の前記スレッドのクラスの前記スレッド強度季節因子は、前記間隔が対応付けられた前記第１の複数の季節のうちの１つまたは前記第２の複数の季節のうちの１つに関連する前記スレッドのクラスの平滑化後のスレッド強度季節因子に対応する、請求項２〜５のいずれか１項に記載の方法。
【請求項７】
前記第１種別の平滑化後のヒープ使用量季節因子は、
前記第１の複数の季節の各々について、前記第１の複数の季節のうちの季節の平均ヒープ使用量を、前記第１長さを有する期間の平均ヒープ使用量と比較することによって、前記第１種別のヒープ使用量季節因子を決定し、
前記第１種別のヒープ使用量季節因子の各々について、第１種別のヒープ使用量季節因子を正規化因子で除算して前記第１種別のくりこまれたヒープ使用量季節因子を取得し、
前記第１種別のくりこまれたヒープ使用量季節因子に第１スプライン関数を適用して前記第１種別の平滑化後のヒープ使用量季節因子を取得することによって、決定され、
前記第２種別の平滑化後のヒープ使用量季節因子は、
前記第２の複数の季節の各々について、前記第２の複数の季節のうちの季節の平均ヒープ使用量を、前記第２長さを有する期間の平均ヒープ使用量と比較することによって、前記第２種別のヒープ使用量季節因子を決定し、
前記第２種別のヒープ使用量季節因子の各々について、第２種別のヒープ使用量季節因子を正規化因子で除算して前記第２種別のくりこまれたヒープ使用量季節因子を取得し、
前記第２種別のくりこまれたヒープ使用量季節因子に第２スプライン関数を適用して前記第２種別の平滑化後のヒープ使用量季節因子を取得することによって、決定される、請求項６に記載の方法。
【請求項８】
前記１つ以上のスレッドのクラスを決定するステップは、
前記１つ以上のプロセスの１つ以上のスレッドダンプを取得するステップを含み、前記スレッドダンプの各々は、前記１つ以上のプロセスが実行中に異なる時点で出力され、前記１つ以上のスレッドのクラスを決定するステップは、さらに、
前記１つ以上のスレッドダンプの１つ以上のスレッドの各々について、スレッドに対応するスタックトレースに基づいて前記スレッドを分類するステップとを含み、前記スタックトレースは、前記スレッドダンプが出力されたときに前記スレッドが実行するコードを示す、請求項２〜７のいずれか１項に記載の方法。
【請求項９】
前記スタックトレースに基づいて前記スレッドを分類するステップは、
前記スタックトレースに含まれるスタックフレームの組合せに対応するスレッドのクラスが存在するかどうかを判断するステップと、
前記スタックトレースに含まれるスタックフレームの組合せに対応するスレッドのクラスが存在しないと判断することに応答して、前記スタックトレースに含まれるスタックフレームの組合せに対応する新しいスレッドのクラスを作成するステップと、
前記スタックトレースに含まれるスタックフレームの組合せに対応するスレッドのクラスに関連する１つ以上のカウンタをインクリメントするステップとを含む、請求項８に記載の方法。
【請求項１０】
前記１つ以上のスレッドのクラスの各々、前記複数の間隔の各々について、間隔の前記スレッド強度情報は、前記間隔を通じて実行中のスレッドのクラスに属するスレッドの平均数を示す、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記１つ以上のアクションは、
前記１行以上のコードに関連するアラートを生成するステップ、または、
前記１行以上のコードを最適化するステップ、の少なくとも一方を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記１行以上のコードを最適化するステップは、使用されるヒープメモリの量を低減するまたは前記ヒープメモリの使用期間を減らすために前記１行以上のコードを修正するステップを含む、請求項１１に記載の方法。
【請求項１３】
１つ以上のプロセッサと、
前記１つ以上のプロセッサにアクセス可能なメモリとを備え、前記メモリは、１つ以上の命令を格納し、前記１つ以上の命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
１つ以上のプロセスによるヒープ使用量が閾値を上回っている時間の長さを判断させ、
前記時間の長さの間の前記１つ以上のプロセスのヒープ情報を決定させ、前記ヒープ情報は、前記時間の長さにおける複数の間隔の各々のヒープ使用量情報を含み、前記１つ以上の命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、さらに、
前記時間の長さの間の前記１つ以上のプロセスのスレッド情報を決定させ、前記スレッド情報を決定することは、１つ以上のスレッドのクラスを決定することを含み、前記スレッド情報は、前記１つ以上のスレッドのクラスの各々について、前記複数の間隔の各々のスレッド強度情報を含み、前記１つ以上の命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、さらに、
前記ヒープ情報を前記スレッド情報に相関させて、前記閾値を上回るヒープ使用量に対応する前記１つ以上のプロセスの１行以上のコードを特定させ、
前記１行以上のコードを特定することに応答して、前記１行以上のコードに関連する１つ以上のアクションを開始させる、システム。
【請求項１４】
請求項１〜１２のいずれか１項に記載の方法を１つ以上のプロセッサに実行させるためのコンピュータ読み取り可能なプログラム。