scholarly journals Using application benchmark call graphs to quantify and improve the practical relevance of microbenchmark suites

2021 ◽  
Vol 7 ◽  
pp. e548
Author(s):  
Martin Grambow ◽  
Christoph Laaber ◽  
Philipp Leitner ◽  
David Bermbach

Performance problems in applications should ideally be detected as soon as they occur, i.e., directly when the causing code modification is added to the code repository. To this end, complex and cost-intensive application benchmarks or lightweight but less relevant microbenchmarks can be added to existing build pipelines to ensure performance goals. In this paper, we show how the practical relevance of microbenchmark suites can be improved and verified based on the application flow during an application benchmark run. We propose an approach to determine the overlap of common function calls between application and microbenchmarks, describe a method which identifies redundant microbenchmarks, and present a recommendation algorithm which reveals relevant functions that are not covered by microbenchmarks yet. A microbenchmark suite optimized in this way can easily test all functions determined to be relevant by application benchmarks after every code change, thus, significantly reducing the risk of undetected performance problems. Our evaluation using two time series databases shows that, depending on the specific application scenario, application benchmarks cover different functions of the system under test. Their respective microbenchmark suites cover between 35.62% and 66.29% of the functions called during the application benchmark, offering substantial room for improvement. Through two use cases—removing redundancies in the microbenchmark suite and recommendation of yet uncovered functions—we decrease the total number of microbenchmarks and increase the practical relevance of both suites. Removing redundancies can significantly reduce the number of microbenchmarks (and thus the execution time as well) to ~10% and ~23% of the original microbenchmark suites, whereas recommendation identifies up to 26 and 14 newly, uncovered functions to benchmark to improve the relevance. By utilizing the differences and synergies of application benchmarks and microbenchmarks, our approach potentially enables effective software performance assurance with performance tests of multiple granularities.

2021 ◽  
Author(s):  
◽  
Jan Larres

<p>In order to evaluate software performance and find regressions, many developers use automated performance tests. However, the test results often contain a certain amount of noise that is not caused by actual performance changes in the programs. They are instead caused by external factors like operating system decisions or unexpected non-determinisms inside the programs. This makes interpreting the test results hard since results that differ from previous results cannot easily be attributed to either genuine changes or noise. In this thesis we use Mozilla Firefox as an example to try to find the causes for this performance variance, develop ways to reduce the noise and present a statistical technique that makes identifying genuine performance changes more reliable. Our results show that a significant amount of noise is caused by memory randomization and other external factors, that there is variance in Firefox internals that does not seem to be correlated with test result variance, and that our suggested statistical forecasting technique can give more reliable detection of genuine performance changes than the one currently in use by Mozilla.</p>


2014 ◽  
Vol 11 (3) ◽  
pp. 1055-1069 ◽  
Author(s):  
Yongman Han ◽  
Jongcheon Choi ◽  
Seong-Je Cho ◽  
Haeyoung Yoo ◽  
Jinwoon Woo ◽  
...  

As software is getting more valuable, unauthorized users or malicious programmers illegally copies and distributes copyrighted software over online service provider (OSP) and P2P networks. To detect, block, and remove pirated software (illegal programs) on OSP and P2P networks, this paper proposes a new filtering approach using software birthmark, which is unique characteristics of program and can be used to identify each program. Software birthmark typically includes constant values, library information, sequence of function calls, and call graphs, etc. We target Microsoft Windows applications and utilize the numbers and names of DLLs and APIs stored in a Windows executable file. Using that information and each cryptographic hash value of the API sequence of programs, we construct software birthmark database. Whenever a program is uploaded or downloaded on OSP and P2P networks, we can identify the program by comparing software birthmark of the program with birthmarks in the database. It is possible to grasp to some extent whether software is an illegally copied one. The experiments show that the proposed software birthmark can effectively identify Windows applications. That is, our proposed technique can be employed to efficiently detect and block pirated programs on OSP and P2P networks.


2014 ◽  
Vol 490-491 ◽  
pp. 1553-1559
Author(s):  
Jun Luo ◽  
Wei Yang

With the rapid development of the information age, computer software develops toward systematization and complication. In application areas such as commerce, finance and medical treatment,the performance of software is attracting more and more attention which even becomes one of the important factors to determine whether users are willing to use a piece of software. Currently, static checking tools are mostly designed to check the code errors but pay little attention to the performance problems. In order to detect the defects in source code that may cause performance problems, this paper designs and achieves a performance testing tool based on static analysis method. The experiments of detecting several open source projects using our testing tool demonstrate that it can quickly find the defects in source code with high accuracy rate. The result of defection removing shows that it can significantly reduce the memory consumption of software, and it can effectively improve software performance.


Automation ◽  
2022 ◽  
Vol 3 (1) ◽  
pp. 27-46
Author(s):  
Joga Dharma Setiawan ◽  
Muhammad Aldi Septiawan ◽  
Mochammad Ariyanto ◽  
Wahyu Caesarendra ◽  
M. Munadi ◽  
...  

Indonesia is a maritime country that has vast coastal resources and biodiversity. To support the Indonesian maritime program, a topography mapping tool is needed. The ideal topography mapping tool is the Unmanned Surface Vehicle (USV). This paper proposes the design, manufacture, and development of an affordable autonomous USV. The USV which is composed of thruster and rudder is quite complicated to build. This study employs rudderless and double thrusters as the main actuators. PID compensator is utilized as the feedback control for the autonomous USV. Energy consumption is measured when the USV is in autonomous mode. The Dynamics model of USV was implemented to study the roll stability of the proposed USV. Open-source Mission Planner software was selected as the Ground Control Station (GCS) software. Performance tests were carried out by providing the USV with an autonomous mission to follow a specific trajectory. The results showed that the developed USV was able to complete autonomous mission with relatively small errors, making it suitable for underwater topography mapping.


Author(s):  
Vladislav Muratovich Dzhidzhoyev ◽  
Ruben Arturovich Buchatskiy ◽  
Michael Vyacheslavovich Pantilimonov ◽  
Alexander Nikolaevich Tomilin

Many modern RDBMS provide procedural extensions for SQL programming language, which allow users to perform server-side complex computations. Use of such extensions improves modularity and code reuse, simplifies programming of application logic, and helps developers to avoid network overhead and enhance performance. Interpretation is mostly used to execute SQL queries and procedural extensions code, resulting in significant computational overhead because of indirect function calls and performing of generic checks. Moreover, most RDBMS use different engines for SQL queries execution and procedural extensions code execution, and it is necessary to perform additional computations to switch between different engines. Thus, interpretation of SQL queries combined with interpretation of procedural extensions code may drastically degrade performance of RDBMS. One solution is to use a dynamic compilation technique. In this paper, we describe the technique of dynamic compilation of PL/pgSQL procedural language for the PostgreSQL database system using LLVM compiler infrastructure. Dynamic compiler of PL/pgSQL procedural language is developed as part of PostgreSQL queries dynamic compiler. Proposed technique helps to get rid of computational overhead caused by interpretation usage. Synthetic performance tests show that the developed solution speeds up SQL queries execution by several times.


2021 ◽  
Author(s):  
◽  
Jan Larres

<p>In order to evaluate software performance and find regressions, many developers use automated performance tests. However, the test results often contain a certain amount of noise that is not caused by actual performance changes in the programs. They are instead caused by external factors like operating system decisions or unexpected non-determinisms inside the programs. This makes interpreting the test results hard since results that differ from previous results cannot easily be attributed to either genuine changes or noise. In this thesis we use Mozilla Firefox as an example to try to find the causes for this performance variance, develop ways to reduce the noise and present a statistical technique that makes identifying genuine performance changes more reliable. Our results show that a significant amount of noise is caused by memory randomization and other external factors, that there is variance in Firefox internals that does not seem to be correlated with test result variance, and that our suggested statistical forecasting technique can give more reliable detection of genuine performance changes than the one currently in use by Mozilla.</p>


2000 ◽  
Vol 42 (4) ◽  
pp. 220-227 ◽  
Author(s):  
U M Fietzek ◽  
F Heinen ◽  
S Berweck ◽  
S Maute ◽  
A Hufschmidt ◽  
...  

Sign in / Sign up

Export Citation Format

Share Document