EP2069937A2 - Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programms - Google Patents
Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programmsInfo
- Publication number
- EP2069937A2 EP2069937A2 EP07820575A EP07820575A EP2069937A2 EP 2069937 A2 EP2069937 A2 EP 2069937A2 EP 07820575 A EP07820575 A EP 07820575A EP 07820575 A EP07820575 A EP 07820575A EP 2069937 A2 EP2069937 A2 EP 2069937A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- program
- benchmark
- mib
- resource consumption
- computer system
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3428—Benchmarking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Definitions
- the invention relates to a method for computer-aided optimizing the resource consumption of a program that comprises least about ⁇ a separately executable program part, in particular distributed in the flow of the program on a, computer system.
- use cases of the entire distributed computer system are checked as part of a so-called integration or system test.
- profiler run times response times of individual hardware and software components, resource consumption of computing units, memory, input / output allocation, etc. are measured. This is done once for the entire system and once for individual hardware and / or software components.
- Profilers are program tools that analyze the runtime behavior of a program. By means of the profiler, it is possible to analyze and compare uncover ongoing programs problem areas of the program or of individual program components ⁇ and fix it.
- the chiefs ⁇ te use of a profiler is the counting and measuring of calls and runs the program parts of the program.
- Another aspect is the tracking of memory usage by a program. By means of a profiler, for example, the consumption of the available working memory can be optimized. If necessary, errors can be found in the program which no longer release unused memory areas.
- instrumentation There are different types of instrumentation: manual instrumentation by extending the source code with commands that calculate the runtime; compiler options for extended programs, thereby providing profiler marks; subsequent modification of compiled programs by inserting marks; Runtime instrumentation, which leaves the stored program untouched and adds the profiler marks to a memory before executing.
- An inventive method for computer-aided optimize the use of resources of a program at ⁇ least one separately executable program part, during execution of the program on a particular distributed computer system, comprising the steps of: initial detection of the resource consumption during execution of the program;
- resource ⁇ consumption of individual executable program components may add through the inlet and sequential varying the benchmark program ge ⁇ aims be varied.
- the respective effects on the resource consumption of the subprogram and finally of the (total) program are determined.
- the changes This is not limited to the addition of analysis code that does not affect the resource consumption of the program, such as instrumental profiling. Rather, code is added in such a way that a significant change in the consumption of resources can be detected, so that effects on other parts of the program or soft or hard ware components ⁇ occur.
- This procedure allows a single system test individual components to determine the performance of the ver ⁇ shared computer system as a whole and its inputs. It also allows statements about the degree of dependence of resource consumption or the performance of individual program parts. This makes it possible to supply program parts with a strong dependence targeted optimization.
- one or more of the following parameters are measured as a measure of resource consumption: the total run time of the program; a memory load of the computer system; an assignment of inputs and / or outputs;
- At least one program part of a run-time change in at least effected by the benchmark program in the program of the one part, in particular an exten ⁇ tion.
- a waiting loop which extends the duration of the at least one program part in a defined manner, can be inserted into the program code of the program part.
- At least one program part of a workload of the at least changed ⁇ changed a computing unit of the distributed computing system, in particular increased by the benchmark program.
- at least one input and / or one output of the distributed computer system are occupied by the benchmark program in the at least one program part.
- the benchmark program in the at least one part of the program changed through a said at least one program part memory induced ⁇ consumption of the distributed computer system, in particular increased.
- the addition of the program code of the at least one program ⁇ part to at least one benchmark program is carried out either at the machine code level or at the source code level.
- the supplement of the program code the at least one program part to at least one Bench mark ⁇ program in which part of the program with the greatest period begins. It is advantageous if the addition of the Programmco ⁇ of the at least one program part to at least one benchmark program is performed sequentially. This makes it possible to obtain in a relatively short time an overview of which program parts have a strong dependence on the performance of the (overall) program in order to optimize it in a targeted manner.
- a filing can be performed heat according to another embodiment.
- the supplementing of the at least one benchmark program in the at least one program part is formed by providing an aspect.
- the determination of the resource consumption by the READY ⁇ development of an aspect is advantageously carried out with computer assistance.
- FIG. 1 shows a schematic program sequence of an exemplary application case in which several program parts of a program are run through in different components of a distributed computer system in still unchanged form
- FIG. 1 A schematic program flow of the use case shown in Fig. 1, in which the programs are mabitese Fig. 2 by additional program code vari ⁇ ated.
- a fire alarm system is shown as an application.
- This includes software components A, B, C, D, which are stored, for example, by different computers and / or devices (eg sensors and / or display elements, etc.) of a distributed computer system for the respective execution.
- the software component A may be, for example, a fire detector.
- the software component B is assigned to a fault computer (so-called "Incident Server"), which receives a fault message from the software component A.
- the Softwarekomponen ⁇ te C represents for example a control and evaluation unit which analyzes supplied thereto fault indications.
- the software component D represented in this application, such as a display unit on which messages can be ⁇ be displayed quo an accident.
- the software components B and C can for example be provided on ei ⁇ nem single computer.
- program parts M1,..., M7 on the different software components A, B, C, D of the distributed computer system in a predetermined by the program code order from ⁇ out.
- the durations for the execution of a respective program part Ml,..., M7 are indicated in the figures by ti,..., T 7 .
- the execution of the entire program from start to finish is t tot •
- the sequence is designed as an example as follows.
- the software component A a message is delivered to the Nl Soft ⁇ ware component B.
- the software component B then executes the program part Ml, for which the time ti is required.
- Result of the process of the program part Ml is a Mel ⁇ dung N2 to the software component C of the distributed computer system. This takes in the program part M2, for example, an evaluation.
- the time duration for the execution of the program part M2 is t 2 .
- As a result of the execution of the Pro ⁇ gram partly M2 Messages N3, N4, transmitted to the software component ⁇ B N5 which another example of the program parts M3, M4 and M5 performs ⁇ in the embodiment of ⁇ .
- the time t 3 , t 4 and t 5 is required.
- the execution of the program parts M3, M4, M5 also be carried out in parallel by the Softwarekompo ⁇ B component.
- ⁇ N6 and N7 sent to the software component D transmitted.
- the time t ⁇ , for carrying out the program section M7 t is the time 7 required.
- M6 can be done playing, on the display a notice Ü about the occurrence of a fire, etc. at ⁇ .
- the time t ges ⁇ Need Beer Untitled.
- the determination of the respective durations of the program parts Ml, ..., M7 and the total runtime t ges can be carried out, for example, by means of instrumenting profiling.
- the program parts M1,..., M7 may be methods, i. Functions or subcalls that act on objects.
- the program parts are at least partially supplemented by at least one benchmark program. This is shown in FIG. 2.
- each program part is supplemented by exactly one benchmark program.
- the program part Ml ' comprises a section MIa, which corresponds to M1 of FIG. 1, and a section MIb, which represents the benchmark program.
- the program part Ml ' has a time of ti' at the expiration. The same applies to the other program parts M2 ', ..., M7'.
- the benchmark programs MIb, ..., M7b the resource consumption of individual components or program parts can be changed by a defined value, in particular ver be ⁇ enlarges.
- the benchmark programs can be formed by holding loops which increase the duration of the execution of a program part in a defined manner.
- the change of the program code of a program part does not have to take place simultaneously for all program parts. Rather, a change of respective program parts can be carried out sequentially, it being expedient to begin first with such program parts which have the longest execution duration.
- the source code of the program or program parts vol ⁇ lstieri is available, the introduction of the "artificial resource consumer" on the source code level can be done.
- the approach of aspect-oriented programming (AOP) is particularly suitable for this.
- Factor analysis can hereby be as a separate “aspect” decor with dark ⁇ tet, where the "where" as so-called. "Pointcut” and the "what” and “how much” as so-called. "Advice” are easy to formulate.
- the performance of a system can not only be determined in its entirety and with regard to the individual components in a single system test, but statements about the degree of dependence of the overall performance on the individual components are possible. Components with a strong dependency can then be targeted for optimization, so-called code refactoring.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102006046201A DE102006046201A1 (de) | 2006-09-29 | 2006-09-29 | Verfahren zum rechnergestützten Optimieren des Ressourcenverbrauchs eines Programms |
| PCT/EP2007/060180 WO2008040662A2 (de) | 2006-09-29 | 2007-09-26 | Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programms |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2069937A2 true EP2069937A2 (de) | 2009-06-17 |
Family
ID=39149422
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP07820575A Ceased EP2069937A2 (de) | 2006-09-29 | 2007-09-26 | Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programms |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20090276762A1 (de) |
| EP (1) | EP2069937A2 (de) |
| DE (1) | DE102006046201A1 (de) |
| WO (1) | WO2008040662A2 (de) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102007029133A1 (de) * | 2007-03-20 | 2008-09-25 | Ludwig-Maximilians-Universität | Verfahren zum rechnergestützten Ermitteln der Abhängigkeiten einer Vielzahl von Modulen eines technischen Systems, insbesondere eines Softwaresystems |
| WO2008113681A1 (de) * | 2007-03-20 | 2008-09-25 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten bestimmen des optimierungspotentials eines softwaresystems |
| US8837721B2 (en) * | 2007-03-22 | 2014-09-16 | Microsoft Corporation | Optical DNA based on non-deterministic errors |
| US8788848B2 (en) | 2007-03-22 | 2014-07-22 | Microsoft Corporation | Optical DNA |
| US20100094861A1 (en) * | 2008-10-01 | 2010-04-15 | Henrique Andrade | System and method for application session tracking |
| US9135948B2 (en) * | 2009-07-03 | 2015-09-15 | Microsoft Technology Licensing, Llc | Optical medium with added descriptor to reduce counterfeiting |
| US8990779B2 (en) * | 2009-08-11 | 2015-03-24 | Sap Se | Response time measurement system and method |
| US8527817B2 (en) | 2010-11-19 | 2013-09-03 | International Business Machines Corporation | Detecting system component failures in a computing system |
| US9195810B2 (en) * | 2010-12-28 | 2015-11-24 | Microsoft Technology Licensing, Llc | Identifying factorable code |
| US8881125B2 (en) * | 2012-06-11 | 2014-11-04 | International Business Machines Corporation | Indirect software performance analysis |
| US9274920B2 (en) * | 2012-09-28 | 2016-03-01 | Dialog Semiconductor B.V. | Code profiling in embedded ULE applications |
| DE102013007676A1 (de) | 2013-05-03 | 2014-11-06 | All4Ip Management Gmbh | Dynamische App-Rechenlast-Verteilung und nahtlose Netzwerkausfallverarbeitung zwischen Smartphone, Fahrzeug und Cloud |
| WO2016018249A1 (en) * | 2014-07-29 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Processor monitoring of thermal degradation |
| US11709750B2 (en) * | 2020-05-12 | 2023-07-25 | International Business Machines Corporation | Dynamically mapping software infrastructure utilization |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6381558B1 (en) * | 1998-12-18 | 2002-04-30 | International Business Machines Corporation | Alternative profiling methodology and tool for analyzing competitive benchmarks |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6126329A (en) * | 1993-06-08 | 2000-10-03 | Rational Software Coporation | Method and apparatus for accurate profiling of computer programs |
| US5794011A (en) * | 1996-07-19 | 1998-08-11 | Unisys Corporation | Method of regulating the performance of an application program in a digital computer |
| US6332212B1 (en) * | 1997-10-02 | 2001-12-18 | Ltx Corporation | Capturing and displaying computer program execution timing |
| US6070009A (en) * | 1997-11-26 | 2000-05-30 | Digital Equipment Corporation | Method for estimating execution rates of program execution paths |
| US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
| US6584611B2 (en) * | 1999-02-17 | 2003-06-24 | Elbrus International Limited | Critical path optimization—unload hard extended scalar block |
| US6594824B1 (en) * | 1999-02-17 | 2003-07-15 | Elbrus International Limited | Profile driven code motion and scheduling |
| US6374369B1 (en) * | 1999-05-21 | 2002-04-16 | Philips Electronics North America Corporation | Stochastic performance analysis method and apparatus therefor |
| US6598012B1 (en) * | 1999-10-07 | 2003-07-22 | International Business Machines Corporation | Method and system for compensating for output overhead in trace date using trace record information |
| US6725180B2 (en) * | 2001-01-12 | 2004-04-20 | Ingersoll-Rand Company | Environmental monitoring system |
| US8108843B2 (en) * | 2002-09-17 | 2012-01-31 | International Business Machines Corporation | Hybrid mechanism for more efficient emulation and method therefor |
| US7496897B1 (en) * | 2004-03-17 | 2009-02-24 | Timesys Corporation | Multiple code sets for multiple execution contexts |
| US7770161B2 (en) * | 2005-12-28 | 2010-08-03 | International Business Machines Corporation | Post-register allocation profile directed instruction scheduling |
| US7770163B2 (en) * | 2006-03-24 | 2010-08-03 | International Business Machines Corporation | Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment |
| US7823130B2 (en) * | 2006-09-22 | 2010-10-26 | Sap Ag | Testing machine-readable instructions |
| US8239830B2 (en) * | 2006-11-03 | 2012-08-07 | Accenture Global Services Limited | System for portal architecture |
| US20080141335A1 (en) * | 2006-12-08 | 2008-06-12 | Novell, Inc. | Provisioning software with policy-appropriate capabilities |
-
2006
- 2006-09-29 DE DE102006046201A patent/DE102006046201A1/de not_active Ceased
-
2007
- 2007-09-26 EP EP07820575A patent/EP2069937A2/de not_active Ceased
- 2007-09-26 WO PCT/EP2007/060180 patent/WO2008040662A2/de not_active Ceased
- 2007-09-26 US US12/311,356 patent/US20090276762A1/en not_active Abandoned
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6381558B1 (en) * | 1998-12-18 | 2002-04-30 | International Business Machines Corporation | Alternative profiling methodology and tool for analyzing competitive benchmarks |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102006046201A1 (de) | 2008-04-17 |
| WO2008040662A2 (de) | 2008-04-10 |
| US20090276762A1 (en) | 2009-11-05 |
| WO2008040662A3 (de) | 2008-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2069937A2 (de) | Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programms | |
| EP2137615B1 (de) | Verfahren zum rechnergestützten ermitteln der abhängigkeiten einer vielzahl von modulen eines technischen systems, insbesondere eines softwaresystems | |
| DE102016100383A1 (de) | Verfahren und System zum Testen eines mechatronischen Systems | |
| EP2799983B1 (de) | Flexible Aufteilung der I/O Kanäle einer Hardware Komponente | |
| EP3306295B1 (de) | Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen | |
| DE102009027627B3 (de) | Simulation von Echtzeit-Software-Komponenten auf Basis der Logischen Ausführungszeit | |
| DE112019002778T5 (de) | Simulationsvorrichtung, simulationsverfahren und elektronische steuereinheitsvorrichtung | |
| DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
| DE102011101064A1 (de) | Formale methoden nutzende zeitsteuerungsanalyse | |
| EP2363809B1 (de) | Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren | |
| DE102011014831A1 (de) | Verfahren und vorrichtung zum analysieren vonsoftware mit einem kalibrierten wert | |
| DE10038499A1 (de) | Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung | |
| DE102013000857A1 (de) | Kompakte Funktionsablaufprotokollierung | |
| EP1502189B1 (de) | Verfahren zur ermittlung der prioritätsabhangigen rechenzeitverteilung in einem priorit tsgesteuerten mehrprozess-rechenysystem | |
| DE112021005655B4 (de) | Datenvergleichsgerät, Datenvergleichssystem und Datenvergleichsverfahren | |
| DE102006041444B4 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
| DE202016008563U1 (de) | Konfigurationssystem zum Konfigurieren eines für das Testen eines Steuergeräts eingerichteten Testgeräts | |
| WO2011038863A1 (de) | Verfahren und anordnung zum installieren und konfigurieren eines computersystems | |
| DE102018221534A1 (de) | System und Verfahren zum Messen der Reaktionszeit von Ereignisketten | |
| EP2592504B1 (de) | Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes | |
| DE102010053701A1 (de) | Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren | |
| DE10041111A1 (de) | Verfahren zum Überarbeiten eines in einer Programmiersprache verfaßten Computerprogramms | |
| EP4198722A1 (de) | Konfiguration einer auf einem computer laufenden sil-simulation eines steuergeräts | |
| DE102010053971A1 (de) | Aufteilen eines gezählten Wertes auf einem auf einem Mehrkernprozessor ausgeführten Task | |
| DE102008048862A1 (de) | Testmodul und Verfahren zum Testen einer O/R-Abbildungs-Middleware |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20090219 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR MK RS |
|
| 17Q | First examination report despatched |
Effective date: 20090827 |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SIEMENS AKTIENGESELLSCHAFT |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20150210 |