{"id":{"repo_id":"uoit","oai_identifier":"oai:ontariotechu.scholaris.ca:10155/1767"},"canonical_url":"https://search.dev.ndltd.org/etd/uoit/oai:ontariotechu.scholaris.ca:10155/1767","repository":{"repo_id":"uoit","name":"Ontario Institute of Technology","base_url":"https://ontariotechu.scholaris.ca/server/oai/request"},"display":{"title":"Identification of Java lock contention anti-patterns based on run-time performance data using machine learning algorithms","abstract":"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.","abstract_html":"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.","abstract_has_math":false,"creators":["Ahmed, Aritra"],"institution":"University of Ontario Institute of Technology","degree_name":"Master of Applied Science (MASc)","degree_level":null,"degree_discipline":"Electrical and Computer Engineering","degree_department":null,"school":null,"contributors":[],"advisors":["Liscano, Ramiro","Azim, Akramul"],"committee_chairs":[],"committee_members":[],"year":2024,"date_issued":"2024-02-01","date_published":"2024-02-01","updated_at":"2026-07-24T05:35:16Z","subjects":[],"languages":["en"],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/10155/1767","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Liscano, Ramiro","Azim, Akramul"]},{"key":"dc:creator","label":"Author","values":["Ahmed, Aritra"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2024-06-11T18:51:28Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2024-06-11T18:51:28Z"]},{"key":"dc:date.issued","label":"Date","values":["2024-02-01"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical and Computer Engineering"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master of Applied Science (MASc)"]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Ontario Institute of Technology"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["en"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://hdl.handle.net/10155/1767"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["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."]},{"key":"dc:title","label":"Title","values":["Identification of Java lock contention anti-patterns based on run-time performance data using machine learning algorithms"]}]}],"canonical_facts":{"dc:contributor.advisor":["Liscano, Ramiro","Azim, Akramul"],"dc:creator":["Ahmed, Aritra"],"dc:date.accessioned":["2024-06-11T18:51:28Z"],"dc:date.available":["2024-06-11T18:51:28Z"],"dc:date.issued":["2024-02-01"],"dc:description.abstract":["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."],"dc:identifier.uri":["https://hdl.handle.net/10155/1767"],"dc:language.iso":["en"],"dc:title":["Identification of Java lock contention anti-patterns based on run-time performance data using machine learning algorithms"],"dc:type":["Thesis"],"thesis:degree_discipline":["Electrical and Computer Engineering"],"thesis:degree_name":["Master of Applied Science (MASc)"],"thesis:institution_name":["University of Ontario Institute of Technology"]},"updated_at":"2026-07-24T05:35:16Z"}