Microbenchmarking frameworks, such as Java\u27s Microbenchmark Harness (JMH), allow developers to write fine-grained performance test suites at the method or statement level. However, due to the complexities of the Java Virtual Machine, developers often struggle with writing expressive JMH benchmarks which accurately represent the performance of such methods or statements. In this paper, we empirically study bad practices of JMH benchmarks. We present a tool that leverages static analysis to identify 5 bad JMH practices. Our empirical study of 123 open source Java-based systems shows that each of these 5 bad practices are prevalent in open source software. Further, we conduct several experiments to quantify the impact of each bad practice i...
Reproducibility and repeatability are key properties of benchmarks. However, achieving reproducibili...
Abstract: Performance is an extra-functional property of software systems which is often critical fo...
Java is a major platform for performance sensitive applications. Unit testing of functionality has a...
The Java Microbenchmarking Harness (JMH) is a widely used tool for testing performance-critical code...
Performance is a crucial non-functional requirement of many software systems. Despite the widespread...
International audienceMicrobenchmarking consists of evaluating, in isolation, the performance of sma...
Software performance faults have severe consequences for users, developers, and companies. One way t...
Continuous\ua0integration (CI) emphasizes quick feedback to developers. This is at odds with current...
Software developers use collection data structures extensively andare often faced with the task of p...
Java workloads are becoming increasingly prominent on various platforms ranging from embedded system...
Executing software microbenchmarks, a form of small-scale performance tests predominantly used for l...
Software performance changes are costly and often hard to detect pre-release. Similar to software te...
Performance problems in applications should ideally be detected as soon as they occur, i.e., directl...
Since benchmarks drive computer science research and industry product development, which ones we use...
Reproducibility and repeatability are key properties of benchmarks. However, achieving reproducibili...
Abstract: Performance is an extra-functional property of software systems which is often critical fo...
Java is a major platform for performance sensitive applications. Unit testing of functionality has a...
The Java Microbenchmarking Harness (JMH) is a widely used tool for testing performance-critical code...
Performance is a crucial non-functional requirement of many software systems. Despite the widespread...
International audienceMicrobenchmarking consists of evaluating, in isolation, the performance of sma...
Software performance faults have severe consequences for users, developers, and companies. One way t...
Continuous\ua0integration (CI) emphasizes quick feedback to developers. This is at odds with current...
Software developers use collection data structures extensively andare often faced with the task of p...
Java workloads are becoming increasingly prominent on various platforms ranging from embedded system...
Executing software microbenchmarks, a form of small-scale performance tests predominantly used for l...
Software performance changes are costly and often hard to detect pre-release. Similar to software te...
Performance problems in applications should ideally be detected as soon as they occur, i.e., directl...
Since benchmarks drive computer science research and industry product development, which ones we use...
Reproducibility and repeatability are key properties of benchmarks. However, achieving reproducibili...
Abstract: Performance is an extra-functional property of software systems which is often critical fo...
Java is a major platform for performance sensitive applications. Unit testing of functionality has a...