Restructuring AMS to reduce synchronization overheads on android system
- 32 Downloads
In this paper, we present an optimization method which can be used to improve the performance of android system by reducing the synchronization overheads in the activity manager service (AMS) component. The optimization decreases the waiting time of synchronizations by dividing the original single object lock in AMS into different ones. We use an alias analysis method, i.e. escape analysis, to divide all the synchronized code blocks into different equivalence classes so that there is no intersection of objects accessed for two blocks from different equivalence classes. Then, we can use different object locks to guard these code blocks. We implemented our optimization on android 6.0, and decreased the waiting time of synchronization locks in AMS by 30.9 and 27.7% when the system starts up and runs normally. We find that the distribution of the waiting time for the synchronized lock is in accordance with the characteristics of power-law distribution.
KeywordsEscape analysis Activity manager service Synchronization
The work was supported by the National Natural Science Foundation of China under Grant No. 61272166, the State Key Laboratory of Software Development Environment of China (Grant No. SKLSDE-2016ZX-08), and Huawei Research Fund (Grant No. HIRPO-20140405-YB2015080015).
- 1.Blanchet, B.: Escape analysis for object-oriented languages: application to Java. In: ACM Sigplan Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 20–34. ACM (1999)Google Scholar
- 2.Choi, J.D., Gupta, M., Serrano, M., et al.: Escape analysis for Java. In: Proceedings of Conference on Object Oriented Programming Systems, Languages & Applications, OOPSLA, pp. 1–19 (1999)Google Scholar
- 5.Shi, X., Jin, M., Wu, G., et al.: Practical escape analysis in an open world. Chin. J. Electr. 18(1), 31–36 (2009)Google Scholar
- 7.Bacon, D.F., Konuru, R., Murthy, C., et al.: Thin locks: featherweight synchronization for Java. In: ACM Sigplan 1998 Conference on Programming Language Design and Implementation, pp. 258–268. ACM (1998)Google Scholar
- 11.Diniz, P., Rinard, M.: Synchronization transformations for parallel computing. ACM Sigplan-Sigact Symposium on Principles of Programming Languages, pp. 187–200. ACM (1997)Google Scholar
- 13.David, T., Guerraoui, R., Trigonakis, V.: Everything you always wanted to know about synchronization but were afraid to ask. In: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pp. 33–48. ACM (2013)Google Scholar
- 14.Ropars, T.: On the performance of delegation over cache-coherent shared memory. In: International Conference on Distributed Computing and Networking, p. 17. ACM (2015)Google Scholar
- 15.Klaftenegger, D., Sagonas, K., Winblad, K.: Brief announcement: queue delegation locking. ACM Symposium on Parallelism in Algorithms and Architectures, pp. 70–72. ACM (2014)Google Scholar