发明名称 Refactoring programs for flexible locking
摘要 Disclosed is a novel computer implemented system, on demand service, computer program product and a method that provides a set of lock usages that improves concurrency resulting in execution performance of the software application by reducing lock contention through refactoring. More specifically, disclosed is a method to refactor a software application. The method starts with accessing at least a portion of a software application that can execute in an operating environment where there are more two or more threads of execution. Next, a determination is made if there is at least one lock used in the software application to enforce limits on accessing a resource. In response to determining that there is a lock with a first type of construct with a given set of features, the software application is refactored with the lock to preserve behavior of the software application.
申请公布号 US8869127(B2) 申请公布日期 2014.10.21
申请号 US201112983581 申请日期 2011.01.03
申请人 International Business Machines Corporation 发明人 Dolby Julian;Sridharan Manu;Tip Frank;Schaefer Max
分类号 G06F9/44 主分类号 G06F9/44
代理机构 Fleit Gibbons Gutman Bongini & Bianco PL 代理人 Gibbons Jon A.;Fleit Gibbons Gutman Bongini & Bianco PL
主权项 1. A computer-implemented method to refactor a software application, the computer-implemented method comprising: executing, with a processor on an information processing system, the following accessing at least a portion of an original software application that can execute in an operating environment where there are more two or more time-shared threads of execution;determining if there is at least one lock used in the original software application to enforce limits on accessing a resource;in response to determining there is at least one lock with a first type of construct with a given set of features, refactoring at least a portion of the original software application with the lock to preserve external functional behavior of a refactored software application such that the refactored software application is functionally equivalent before and after the refactoring for each concurrent user in a set of at least two concurrent users of the refactored software application with the two or more time-shared threads of execution, by identifying at least one use of the first type of construct for the lock, and further identifying all uses of that first type of construct for the lock in the original software application which must be refactored together in order to preserve external functional behavior in all possible cases;reassigning the lock to one of a set of lock usages with a second type of construct; andtransforming the lock usages in the first type of construct for the lock that have been identified to the second type of construct for that lock, such that the second type of construct for the lock is always acquired and released whenever the first type of construct for the lock was in the original software application.
地址 Armonk NY US