Please use this identifier to cite or link to this item: http://hdl.handle.net/1893/36538
Appears in Collections:Computing Science and Mathematics Journal Articles
Peer Review Status: Refereed
Title: Comparing apples and oranges? Investigating the consistency of CPU and memory profiler results across multiple java versions
Author(s): Watkinson, Myles
Brownlee, Alexander E. I.
Contact Email: alexander.brownlee@stir.ac.uk
Keywords: Profiling
Runtime
Memory use
Genetic improvement
Java
Empirical study
Issue Date: May-2024
Date Deposited: 3-Dec-2024
Citation: Watkinson M & Brownlee AEI (2024) Comparing apples and oranges? Investigating the consistency of CPU and memory profiler results across multiple java versions. <i>Automated Software Engineering</i>, 31, Art. No.: 28. https://doi.org/10.1007/s10515-024-00423-2
Abstract: Profiling is an important tool in the software developer’s box, used to identify hot methods where most computational resources are used, to focus efforts at improving efficiency. Profilers are also important in the context of Genetic improvement (GI) of software. GI applies search-based optimisation to existing software with many examples of success in a variety of contexts. GI generates variants of the original program, testing each for functionality and properties such as run time or memory footprint, and profiling can be used to target the code variations to increase the search efficiency. We report on an experimental study comparing two profilers included with different versions of the Java Development Kit (JDK), HPROF (JDK 8) and Java Flight Recorder (JFR) (JDK 8, 9, and 17), within the GI toolbox Gin on six open-source applications, for both run time and memory use. We find that a core set of methods are labelled hot in most runs, with a long tail appearing rarely. We suggest five repeats enough to overcome this noise. Perhaps unsurprisingly, changing the profiler and JDK dramatically change the hot methods identified, so profiling must be rerun for new JDKs. We also show that using profiling for test case subset selection is unwise, often missing relevant members of the test suite. Similar general patterns are seen for memory profiling as for run time but the identified hot methods are often quite different.
DOI Link: 10.1007/s10515-024-00423-2
Rights: This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
Licence URL(s): http://creativecommons.org/licenses/by/4.0/

Files in This Item:
File Description SizeFormat 
s10515-024-00423-2.pdfFulltext - Published Version1.76 MBAdobe PDFView/Open



This item is protected by original copyright



A file in this item is licensed under a Creative Commons License Creative Commons

Items in the Repository are protected by copyright, with all rights reserved, unless otherwise indicated.

The metadata of the records in the Repository are available under the CC0 public domain dedication: No Rights Reserved https://creativecommons.org/publicdomain/zero/1.0/

If you believe that any material held in STORRE infringes copyright, please contact library@stir.ac.uk providing details and we will remove the Work from public display in STORRE and investigate your claim.