Browse Prior Art Database

A guidance method and system for performance optimized software development

IP.com Disclosure Number: IPCOM000250039D
Publication Date: 2017-May-19
Document File: 5 page(s) / 33K

Publishing Venue

The IP.com Prior Art Database

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 32% of the total text.

A guidance method and system for performance optimized software development

Large-scale software development is commonly done by many developers who do not have an a-priori insight into overall performance implications when changing or adding code to existing or new methods. Instead, performance is evaluated periodically after including changes originating from several developers. As a result, possible performance deterioration is detected late in the cycle and detailed analysis effort is required to identify and correct the source of deterioration. For the individual developer, having a-priori insight into the effect of planned changes improves the situation by letting the developer avoid adding to software parts that are performance-critical already. This publication proposes the computation of a performance model allowing to estimate the performance impact code additions/changes before actually delivering the changes. The performance model identifies performance-sensitive methods (vs. less performance-sensitive) methods that disproportionately add to performance overhead when being enhanced. Developers use such indications to prefer the enhancement of less-sensitive methods and reduce/simplify computation in methods that are already labeled as performance-sensitive. Computation and exploitation of the performance model are done in a way that suits many scenarios by allowing • the computation to span longer periods of time, thus reflecting long-term

observation of software behavior (e.g. for days/weeks in a customer installation of the software)

• the exploitation to be done in a near real-time fashion to instantly assess the impact of planned changes

This publication describes a method and system for evaluating performance characteristics of a software package and providing guidance in form of performance indicators to software developers. Developers use the information to make informed decisions as to where to alter or add code to optimize overall performance. As such, the method supports scenarios including: • improving an already existing software to increase the packages' performance • continuous software development, where performance indicators computed after a development iteration are used as input for the subsequent development iteration. A. Performance indicators The proposed method computes performance indicators for observed methods in a software package. Two measures are used as indicators per observed method:

• PI1: measured average execution time (ET) between start and end of a method invocation, as established during an observation cycle.

• PI2: the invocation count (IC) of a method as measure during an observation cycle. In this context, an observed method is a unit that is of interest from a development perspective, i.e. corresponds to a programming language (e.g. JAVA class) method. At one extreme, every program method can be turned into an observed method. A more aggregated approach can denote the methods in a Java pack...