UCLA COMSCI 232 - Static Analyses (20 pages)

Previewing pages 1, 2, 19, 20 of 20 page document View the full content.
View Full Document

Static Analyses



Previewing pages 1, 2, 19, 20 of actual document.

View the full content.
View Full Document
View Full Document

Static Analyses

97 views

Lecture Notes


Pages:
20
School:
University of California, Los Angeles
Course:
Comsci 232 - Static Program Analysis

Unformatted text preview:

Static Analyses for Eliminating Unnecessary Synchronization from Java Programs Jonathan Aldrich Craig Chambers Emin Gun Sirer and Susan Eggers Department of Computer Science and Engineering University of Washington Box 352350 Seattle WA 98195 USA jonal chambers egs eggers cs washington edu Abstract This paper presents and evaluates a set of analyses designed to reduce synchronization overhead in Java programs Monitor based synchronization in Java often causes significant overhead accounting for 5 10 of total execution time in our benchmark applications To reduce this overhead programmers often try to eliminate unnecessary lock operations by hand Such manual optimizations are tedious error prone and often result in poorly structured and less reusable programs Our approach replaces manual optimizations with static analyses that automatically find and remove unnecessary synchronization from Java programs These analyses optimize cases where a monitor is entered multiple times by a single thread where one monitor is nested within another and where a monitor is accessible by only one thread A partial implementation of our analyses eliminates up to 70 of synchronization overhead and improves running time by up to 5 for several already hand optimized benchmarks Thus our automated analyses have the potential to significantly improve the performance of Java applications while enabling programmers to design simpler and more reusable multithreaded code 1 Introduction Monitors LR80 are appealing constructs for synchronization because they promote reusable code and present a simple model to the programmer Many modern programming languages such as Java GJS96 and Modula 3 directly support monitors While these constructs enable programmers to easily write multithreaded programs and reusable components they can incur significant run time overhead Reusable code modules may contain synchronization for the most general case of concurrent access even though particular programs often use



View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...
Login

Join to view Static Analyses and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Static Analyses and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?