Identification of Java lock contention anti-patterns based on run-time performance data using machine learning algorithms
Locks are critical in concurrent Java applications, ensuring synchronized access to shared resources. Mismanagement of locks and threads can result in contention, affecting performance and scalability. Eight Java lock contention anti-patterns have been identified, representing various scenarios of lock contention within intrinsic locks. Traditional methods for identifying these faults rely on legacy tools and experience. This study evaluates machine learning algorithms’ effectiveness in detecting lock contention anti-patterns. When the algorithms were trained and tested with a 70-30 split we obtained an accuracy above 90%. To validate the findings we used the Dacapo benchmark as the testing set and found XGBoost performing well among the rest with an overall accuracy of 87%. Logistic Regression, Random Forest and Support Vector Machine were the best performing models in terms of precision and recall values. We also validated our recommendations provided by comparing three important performance metrics between the original and refactored version of the anti-patterns.
Networked Digital Library of Theses and Dissertations
University of Ontario Institute of Technology