JP2022505341A - パフォーマンス特性に従って選択的にプログラムを計装するためのシステム及び方法 - Google Patents
パフォーマンス特性に従って選択的にプログラムを計装するためのシステム及び方法 Download PDFInfo
- Publication number
- JP2022505341A JP2022505341A JP2021521324A JP2021521324A JP2022505341A JP 2022505341 A JP2022505341 A JP 2022505341A JP 2021521324 A JP2021521324 A JP 2021521324A JP 2021521324 A JP2021521324 A JP 2021521324A JP 2022505341 A JP2022505341 A JP 2022505341A
- Authority
- JP
- Japan
- Prior art keywords
- instrumentation
- program
- overhead
- function
- individual
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
(数1) K = p / q
(数2) K = ( q + C ) / q
(数3) K = 1 + C / q
そのため、元の関数のサイズが大きくなるにつれて、計装の影響は小さくなる。一般に、異なる関数の実行時間は命令数とともに変化するため、異なる関数を計装する際、説明された値は変わる。
計装帰属部分=(計装カウント)/(計装カウント+プログラムカウント)
Claims (20)
- プログラムを選択的に計装するためのオーバーヘッド評価システムであって、
1つ以上のプロセッサ(100)と、
1つ以上のプロセッサに通信可能に結合され、1つ以上のプロセッサによって実行されるとき、1つ以上のプロセッサに、プログラムを分析して、プログラムの個別の関数内の計装のセグメントに関連付けられるオーバーヘッドスコアを生成させる命令を含むパフォーマンスモジュール(130)と、計装は、プログラムのソースコードと組み合わされて、プログラムの基本機能に追加される機能を提供し、1つ以上のプロセッサによって実行されるとき、1つ以上のプロセッサに、セグメントのそれぞれのオーバーヘッドスコアが、個別の関数のそれぞれと関連付けられた計装閾値を満たすかどうかに応じて、個別の関数について、プログラムのソースコード内のセグメントを選択的に変更させる命令を含む計装モジュール(140)と、を格納するメモリ(12)と、を備えるオーバーヘッド評価システム。 - 個別の関数のそれぞれの計装閾値は、少なくとも部分的に、計装ポリシーによって定義された個別の関数を計装するための重要度を少なくとも含む、個別の関数に関連付けられた1つ以上の特性に基づく、請求項1のオーバーヘッド評価システム。
- 計装モジュールは、計装閾値を満たさない個別の関数の中の不充足関数の計装を変更することによってオーバーヘッドスコアを改善する命令を含む、計装のセグメントを選択的に変更する命令を含む、請求項1のオーバーヘッド評価システム。
- 不充足関数の計装を変更することは、計装を削除することと、計装を不充足関数のオーバーヘッドスコアを改善する結果となる最適化された計装で置き換えることとの1つを含む、請求項3のオーバーヘッド評価システム。
- パフォーマンスモジュールは、個別の関数のランタイムカバレッジに対するプログラムカウントと計装カウントとの比率として、個別の関数に関連付けられたそれぞれのセグメントのオーバーヘッドスコアを算出する命令を含む、オーバーヘッドスコアを生成する命令を含み、計装は、プログラムのフローを制御して、プログラムの外部の二次相互作用からフローのリダイレクトを防ぐセキュリティ計装である、請求項1乃至4のいずれか1つのオーバーヘッド評価システム。
- パフォーマンスモジュールは、プログラムカウントと計装カウントとを生成する命令を含む、プログラムを分析する命令を含み、プログラムカウントは個別の関数に関連付けられたプログラムの命令数を示し、計装カウントは、それぞれのセグメントの計装の命令数を示す、請求項5のオーバーヘッド評価システム。
- パフォーマンスモジュールは、プログラムが実行されるときに、プログラムの個別の関数のランタイムカバレッジを動的に捕捉する命令を含む、プログラムを分析する命令を含む、請求項5のオーバーヘッド評価システム。
- パフォーマンスモジュールは、プログラムへのエントリポイントと、限定されたパス深さに従うプログラムの再帰的分析とに従ってランタイムカバレッジを算出することにより、個別の関数のランタイムカバレッジを静的に決定する命令を含む、プログラムを分析する命令を含む、請求項5のオーバーヘッド評価システム。
- プログラムを選択的に計装する命令を格納するものであって、
その命令は、1つ以上のプロセッサ(100)によって実行されるとき、1つ以上のプロセッサに、
プログラムの個別の関数内の計装のセグメントに関連付けられるオーバーヘッドスコアを生成するようにプログラムを分析させ(230)、計装はソースコードと組み合わされて、プログラムの基本機能に追加される機能を提供し、そして
セグメントのそれぞれのオーバーヘッドスコアが、個別の関数のそれぞれと関連付けられた計装閾値を満たすかどうかに応じて、個別の関数について、プログラムのソースコード内のセグメントを選択的に変更させる(250)、非一時的コンピュータ可読媒体。 - 個別の関数のそれぞれの計装閾値は、少なくとも部分的に、計装ポリシーによって定義された個別の関数を計装するための重要度を少なくとも含む、個別の関数に関連付けられた1つ以上の特性に基づく、請求項9の非一時的コンピュータ可読媒体。
- 計装を選択的に変更する命令は、計装閾値を満たさない個別の関数の中の不充足関数の計装を削除することによってオーバーヘッドスコアを改善する命令を含む、請求項9又は10の非一時的コンピュータ可読媒体。
- 計装は、プログラムのフローを制御して、プログラムの外部の二次相互作用からフローのリダイレクトを防ぐセキュリティ計装である、請求項9乃至11のいずれか1つの非一時的コンピュータ可読媒体。
- オーバーヘッドスコアを生成する命令は、個別の関数のランタイムカバレッジに対するプログラムカウントと計装カウントとの比率として、個別の関数に関連付けられたそれぞれのセグメントのオーバーヘッドスコアを算出する命令を含む、請求項9乃至12のいずれか1つの非一時的コンピュータ可読媒体。
- プログラムを選択的に計装する方法であって、
プログラムをソースコードからマシンコードにコンパイルすることに応答して、し、プログラムの別個の関数内の計装のセグメントに関連付けられるオーバーヘッドスコアを生成するようにプログラムを分析すること(230)、
計装は、ソースコードと組み合わされて、プログラムの基本機能に追加される機能を提供し、
セグメントのそれぞれのオーバーヘッドスコアが、個別の関数のそれぞれと関連付けられた計装閾値を満たすかどうかに応じて、個別の関数について、ソースコード内のセグメントを選択的に変更すること(250)、を備える方法。 - 個別の関数のそれぞれの計装閾値は、少なくとも部分的に、計装ポリシーによって定義された個別の関数を計装するための重要度を少なくとも含む、個別の関数に関連付けられた1つ以上の特性に基づく、請求項14の方法。
- 計装のセグメントを選択的に変更することは、計装閾値を満たさない個別の関数の中の不充足関数の計装を変更することによってオーバーヘッドスコアを改善することを含む、請求項14又は15の方法。
- 不充足関数の計装を変更することは、計装を削除することと、計装を不充足関数のオーバーヘッドスコアを改善する結果となる最適化された計装で置き換えることとの1つを含む、請求項16の方法。
- オーバーヘッドスコアを生成することは、個別の関数のランタイムカバレッジに対するプログラムカウントと計装カウントとの比率として、個別の関数に関連付けられたそれぞれのセグメントのオーバーヘッドスコアを算出することを含み、
プログラムを分析することは、プログラムカウントと計装カウントとを生成することを含み、プログラムカウントは個別の関数に関連付けられたプログラムの命令数を示し、計装カウントは、それぞれのセグメントの計装の命令数を示す、請求項14の方法。 - プログラムを分析することは、プログラムの個別の関数のランタイムカバレッジを動的に捕捉することを含み、計装は、プログラムのフローを制御して、プログラムの外部の二次相互作用からフローのリダイレクトを防ぐセキュリティ計装である、請求項18の方法。
- プログラムを分析することは、プログラムへのエントリポイントと、限定されたパス深さに従うプログラムの再帰的分析とに従ってランタイムカバレッジを算出することにより、個別の関数のランタイムカバレッジを静的に決定することを含む、請求項18の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/164,173 US10768915B2 (en) | 2018-10-18 | 2018-10-18 | Systems and methods for selectively instrumenting a program according to performance characteristics |
US16/164,173 | 2018-10-18 | ||
PCT/JP2019/041075 WO2020080519A1 (en) | 2018-10-18 | 2019-10-18 | Systems and methods for selectively instrumenting a program according to performance characteristics |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022505341A true JP2022505341A (ja) | 2022-01-14 |
JP7188580B2 JP7188580B2 (ja) | 2022-12-13 |
Family
ID=68426778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021521324A Active JP7188580B2 (ja) | 2018-10-18 | 2019-10-18 | パフォーマンス特性に従って選択的にプログラムを計装するためのシステム及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10768915B2 (ja) |
JP (1) | JP7188580B2 (ja) |
WO (1) | WO2020080519A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126436B1 (en) * | 2020-10-05 | 2021-09-21 | Unisys Corporation | Compilation and execution of parallel code fragments |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151031A (ja) * | 1991-11-29 | 1993-06-18 | Nec Corp | オーバーヘツド情報算出方式 |
US20080148039A1 (en) * | 2006-11-30 | 2008-06-19 | Computer Associates Think, Inc. | Selecting instrumentation points for an application |
JP2011238232A (ja) * | 2010-05-11 | 2011-11-24 | Computer Associates Think Inc | 特定のトランザクションコンテキストにおけるソフトウェアによる条件付き動的計測 |
JP2011248895A (ja) * | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | ソフトウェアアプリケーションのプロファイリング方法及び装置 |
US20160378987A1 (en) * | 2015-06-29 | 2016-12-29 | International Business Machines Corporation | Self-repair and distributed-repair of applications |
US20180285238A1 (en) * | 2017-03-30 | 2018-10-04 | Ca, Inc. | Intelligent deinstrumentation of instrumented applications |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6546548B1 (en) * | 1997-12-12 | 2003-04-08 | International Business Machines Corporation | Method and system for compensating for output overhead in trace data using initial calibration information |
US6918110B2 (en) | 2001-04-11 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code |
US20030163608A1 (en) * | 2002-02-21 | 2003-08-28 | Ashutosh Tiwary | Instrumentation and workload recording for a system for performance testing of N-tiered computer systems using recording and playback of workloads |
US7587709B2 (en) * | 2003-10-24 | 2009-09-08 | Microsoft Corporation | Adaptive instrumentation runtime monitoring and analysis |
US8448130B1 (en) | 2007-08-20 | 2013-05-21 | The Mathworks, Inc. | Auto-generated code validation |
US8307375B2 (en) * | 2007-09-27 | 2012-11-06 | International Business Machines Corporation | Compensating for instrumentation overhead using sequences of events |
US8726251B2 (en) | 2011-03-29 | 2014-05-13 | Oracle International Corporation | Pipelined loop parallelization with pre-computations |
WO2013085518A1 (en) | 2011-12-08 | 2013-06-13 | Intel Corporation | A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution |
WO2014041561A2 (en) | 2012-08-31 | 2014-03-20 | Iappsecure Solutions Pvt. Ltd. | A system for analyzing applications accurately for finding security and quality issues |
US8826254B2 (en) | 2012-11-08 | 2014-09-02 | Concurix Corporation | Memoizing with read only side effects |
US9703681B2 (en) * | 2014-05-29 | 2017-07-11 | Microsoft Technology Licensing, Llc | Performance optimization tip presentation during debugging |
-
2018
- 2018-10-18 US US16/164,173 patent/US10768915B2/en active Active
-
2019
- 2019-10-18 WO PCT/JP2019/041075 patent/WO2020080519A1/en active Application Filing
- 2019-10-18 JP JP2021521324A patent/JP7188580B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151031A (ja) * | 1991-11-29 | 1993-06-18 | Nec Corp | オーバーヘツド情報算出方式 |
US20080148039A1 (en) * | 2006-11-30 | 2008-06-19 | Computer Associates Think, Inc. | Selecting instrumentation points for an application |
JP2011238232A (ja) * | 2010-05-11 | 2011-11-24 | Computer Associates Think Inc | 特定のトランザクションコンテキストにおけるソフトウェアによる条件付き動的計測 |
JP2011248895A (ja) * | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | ソフトウェアアプリケーションのプロファイリング方法及び装置 |
US20160378987A1 (en) * | 2015-06-29 | 2016-12-29 | International Business Machines Corporation | Self-repair and distributed-repair of applications |
US20180285238A1 (en) * | 2017-03-30 | 2018-10-04 | Ca, Inc. | Intelligent deinstrumentation of instrumented applications |
Non-Patent Citations (2)
Title |
---|
KUMAR NAVEEN ET AL.: "Low Overhead Program Monitoring and Profiling", PASTE '05: PROCEEDINGS OF THE 6TH ACM SIGPLAN-SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOL, JPN7022002121, 2005, pages 28 - 34, ISSN: 0004769228 * |
MUBLER JAN ET AL.: "Reducing the Overhead of Direct Application Instrumentation Using Prior Static Analysis", EURO-PAR 2011 PARALLEL PROCESSING, LECTURE NOTES IN COMPUTER SCIENCE [ONLINE], vol. 6852, JPN6022017601, 2011, pages 65 - 76, ISSN: 0004769229 * |
Also Published As
Publication number | Publication date |
---|---|
JP7188580B2 (ja) | 2022-12-13 |
US20200125343A1 (en) | 2020-04-23 |
WO2020080519A1 (en) | 2020-04-23 |
US10768915B2 (en) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10032114B2 (en) | Predicting application performance on hardware accelerators | |
JP7164017B2 (ja) | フォールトツリー分析を使用して機能安全のため制御フローグラフを最適化するシステム及び方法 | |
Kwon et al. | Mantis: Automatic performance prediction for smartphone applications | |
Baresel et al. | Fitness function design to improve evolutionary structural testing | |
CN104636256B (zh) | 一种内存访问异常的检测方法及装置 | |
US10657025B2 (en) | Systems and methods for dynamically identifying data arguments and instrumenting source code | |
US11835987B2 (en) | Methods and apparatus for finding long methods in code | |
JP7218793B2 (ja) | プログラムの機能を向上するための制御フローシステム、非一時的可読媒体、および方法 | |
BR112015019167B1 (pt) | Método realizado por um processador de computador e sistema | |
US10754744B2 (en) | Method of estimating program speed-up in highly parallel architectures using static analysis | |
US10545850B1 (en) | System and methods for parallel execution and comparison of related processes for fault protection | |
US20190079850A1 (en) | Systems and methods for identifying and tracking application performance incidents | |
US10613842B2 (en) | Simplifying a control flow graph based on profiling data | |
US20210405980A1 (en) | Long method autofix engine | |
US20210318946A1 (en) | Generation of code coverage information during testing of a code sequence | |
JP2022505341A (ja) | パフォーマンス特性に従って選択的にプログラムを計装するためのシステム及び方法 | |
JP2016149123A (ja) | 未知のバイナリモジュールのための有効な入力を決定する方法及び非一時的なコンピュータ可読媒体 | |
US20210304059A1 (en) | Method for selecting datasets for updating an artificial intelligence module | |
Saumya et al. | Xstressor: Automatic generation of large-scale worst-case test inputs by inferring path conditions | |
Blackmore et al. | A logic programming approach to predict effective compiler settings for embedded software | |
US20140325490A1 (en) | Classifying Source Code Using an Expertise Model | |
CN116108449A (zh) | 软件模糊测试方法、装置、设备及存储介质 | |
Tribus et al. | Using data mining for static code analysis of C | |
Puhan et al. | Program crash analysis based on taint analysis | |
Wu | Mutation-based genetic improvement of software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210514 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220622 |
|
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: 20221101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221114 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7188580 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |