Performance Diagnosis of Mobile Applications and Cloud Services
輕量化和規模化是當前技術發展的兩大趨勢,其各自的代表技術為移動計算和雲計算。例如基於云服務的移動計算作为這兩種技術的融合正變得流行。然而現有的技術仍不能滿足挑剔的用戶對應用程序性能的高要求。提高程序性能,改善用戶體驗對移動應用程序和雲服務都十分關鍵。良好的用戶體驗直接影響到應用程序能否成功吸引并留住用戶。在本論文中,我們提出了分別針對移動應用程序和雲計算的性能調優方法。 === 在本論文中,首先,我們研究了移動應用程序的性能調優。在移動端,用戶界面的響應速度是用戶體驗的關鍵因素也是衡量應用程序性能的重要指標。然而移動端的一些操作通常需要比較久的時間完成。為了防止由於阻塞主線程導致的界面凍結,耗...
Other Authors: | |
---|---|
Format: | Others |
Language: | English Chinese |
Published: |
2016
|
Subjects: | |
Online Access: | http://repository.lib.cuhk.edu.hk/en/item/cuhk-1292421 |
Summary: | 輕量化和規模化是當前技術發展的兩大趨勢,其各自的代表技術為移動計算和雲計算。例如基於云服務的移動計算作为這兩種技術的融合正變得流行。然而現有的技術仍不能滿足挑剔的用戶對應用程序性能的高要求。提高程序性能,改善用戶體驗對移動應用程序和雲服務都十分關鍵。良好的用戶體驗直接影響到應用程序能否成功吸引并留住用戶。在本論文中,我們提出了分別針對移動應用程序和雲計算的性能調優方法。 === 在本論文中,首先,我們研究了移動應用程序的性能調優。在移動端,用戶界面的響應速度是用戶體驗的關鍵因素也是衡量應用程序性能的重要指標。然而移動端的一些操作通常需要比較久的時間完成。為了防止由於阻塞主線程導致的界面凍結,耗時操作通常會利用移動操作系統(如Android)中的複雜並發模式完成。這使得開發人員對於程序性能的理解以及進一步的調優變得困難。本論文針對Android UI性能調優的需求實現了DiagDroid工具。DiagDroid設計的主要觀念是UI觸發的異步任務(如雲服務請求)會影響UI性能,因此對程序的性能調優時,需要記錄分析這些異步任務的性能和他們之間的運行時依賴關係。然而,安卓提供了及其多樣的方式啟動異步任務,這使得記錄異步任務以及他們之間的依賴關係變得很困難。本論文中,我們將異步任務分為五類。對每一種類型的異步任務,我們設計了針對性的追蹤和記錄的方法。我們利用了Android的一些系統特性,基於輕量級動態插樁,實現了這些記錄方法。我們實現了DiagDroid工具,其能夠在任務級別記錄異步任務的生命週期,并具有低開銷、高兼容性的優點。我們使用DiagDroid對33個我們不熟悉的開源應用進行性能調優,發現了其中14個程序包含27個新的性能問題,這樣的結果是我們確信DiagDroid 對開發者進行性能調優是有幫助的。 === 即使經過性能調優,受限於如網絡連接的速度以及服務的複雜度,許多操作仍然需要很長時間來完成。移動端的設計需要能夠容忍長延遲的操作。而好的界面設計能夠提升用戶對長延遲容忍度。而低界面延遲,也即從用戶操作至其相應的界面更新之間的延遲,是好的界面設計的重要因素。現今仍然缺乏一項完整的,針對用戶可以容忍多長的界面延遲,以及如何檢測不良界面設計中導致用戶不耐煩的長界面延遲缺陷的研究。因此,移動應用市場上充斥著很多界面設計有缺陷的應用程序,導致了大量的用戶抱怨應用程序的性能問題。本論文旨在更好的理解移動端用戶對界面延遲的期望,基於此檢測并定位那些用戶不滿意的長延遲界面元素。為此,我們設計了一項對界面延遲的用戶調查。通過問卷調查我們發現了用戶耐心與界面延遲的關係。因此一個及時的屏幕更新(例如加載動畫)對于長延遲的用戶操作十分重要。我們設計了一個工具監視用戶數據和界面更新,并檢測沒有及時響應的界面元素。我們公佈了用戶調查和工具。我們將工具應用於在實際程序中,實驗結果表明我們的工具能夠有效檢測界面設計的缺陷。 === 此外,我們研究了雲服務的性能調優問題。在雲端,服務器的優化部署是為分散的移動用戶提供更好服務的關鍵。用戶體驗受用戶端和雲端連接延遲的影響,是服務器的優化部署需要著重考慮的因素。然而用戶可能從各個地方請求雲服務,用戶通常也不會主動訪問雲服務器提供用戶體驗數據,因此用戶體驗不容易獲取。本論文對雲服務建模,提出在雲服務框架中獲取及預測用戶體驗數據的方法。基於獲得的用戶體驗數據,論文設計了優化服務部署的方法,包括單服務部署和多服務協同部署的算法。我們收集了實際的用戶訪問數據,實驗驗證了論文方法的有效性。 === 綜上所述,本論文研究了移動應用以及雲服務的性能調優的方法,提出了移動端和雲端的性能調優方法。實驗驗證了論文方法的有效性。論文實現的工具集以及使用的數據集已開源發佈以供其他研究者使用。 === Mobility and scalability are two recent technological trends whose representative techniques are mobile computing and cloud computing. For example, cloud-based mobile computing, as a mix of the two, is becoming popular. However, current mobile computing and cloud services do not satisfy all of the performance requirements of the critical users. To improve user experience, it is necessary to enhance the performance of them. In this thesis, we propose a methodology for tuning the performance of the mobile applications and cloud services. This thesis contributes significantly to the performance tuning for both of them. === First, we examine how to tune the performance of mobile app. Rapid user interface (UI) responsiveness is a key consideration of Android app developers. However, service requests to the cloud often take a long time to execute. To avoid freezing the screen by blocking the UI thread, the requests are usually conducted under Android’s complicated concurrency model, making it difficult for developers to understand and further diagnose the performance. This thesis presents DiagDroid, a tool specifically designed for Android UI performance diagnosis. The key notion of DiagDroid is that the UI-triggered asynchronous executions (e.g., cloud service requests) contribute to UI performance, and hence their performance and their runtime dependency needs to be properly captured to facilitate performance diagnosis. However, there are tremendous ways to start an asynchronous execution, posing a great challenge to profiling such executions and their runtime dependency. To this end, we properly abstract five categories of asynchronous executions as the building basis. They can be tracked and profiled based on the specifics of each category using a dynamic instrumentation approach carefully tailored for Android. DiagDroid can then profile the asynchronous executions in a task granularity, equipping it with low-overhead and high compatibility merits. The tool is successfully applied in diagnosing 33 real-world open-source apps; we find 27 performance issues in 14 apps. These case studies show the effectiveness of our tool for Android UI performance diagnosis. === Even when they are finely tuned, many services still require a long time to execute. Mobile apps should be tolerant of long processing time. Good user interface (UI) design is the key to successful mobile apps. UI latency, which can be considered as the time between the commencement of a UI operation and its intended UI update, is a critical consideration for app developers. There are currently no studies of how much UI latency a user can tolerate, and how to find UI design defects that cause intolerably long UI latency. As a result, bad UI apps are still common in app markets, leading to extensive user complaints. This thesis examines user expectations of UI latency, and develops a tool to pinpoint intolerable UI latency in Android apps. To this end, we design an app to conduct a user survey of UI latency in apps. Through the survey, we examine the relationship between user patience and UI latency. Therefore a timely screen update (e.g., a loading animation) is critical to heavyweighted UI operations (i.e., those that incur a long execution time before the final UI update is available). We then design a tool that, by monitoring the UI inputs and updates, can detect apps that do not meet this criterion. The survey and the tool are open-source released on-line. We also apply the tool to many real-world apps. The results demonstrate the effectiveness of the tool in combating UI design defects in apps. === Moreover, we investigate methods for improving the performance of cloud services. In a cloud, the optimal deployment of servers is key to providing better service for a wide range of mobile users. User experience, which is affected by client-server connection delays, is a key concern for optimizing cloud service deployment; however, it is a challenging task to determine the user experience of end users, as users may connect to a cloud service from anywhere. Moreover, there is generally no proactive connection between a user and the machine that hosts a service instance. In this thesis, we propose a framework to model cloud features and capture user experience. Based on the obtained user experience data, we formulate an optimal service deployment model. Furthermore, many services involve multiple clouds. For example, a service provider may use a hybrid cloud that provides several services in private and public clouds, or a service may request another service such as ticket booking agency services. Therefore, we formulate models for the multiple services co-deployment. Experiments based on a real-world dataset prove the effectiveness of the proposed models and algorithms. === In summary, we study the performance tuning problems for mobile apps and cloud services. We propose the mobile app and the cloud service performance tuning methods. Our tools are able to locate previously unknown performance issues in real-world mobile apps. Moreover, we collect a set of real-world QoS data from the Internet. The experiments based on the dataset prove the effectiveness of our models and algorithms. We have public released the dataset as well as the source codes of our tools. === Kang, Yu. === Thesis Ph.D. Chinese University of Hong Kong 2016. === Includes bibliographical references (leaves ). === Abstracts also in Chinese. === Title from PDF title page (viewed on …). === Detailed summary in vernacular field only. === Detailed summary in vernacular field only. === Detailed summary in vernacular field only. === Detailed summary in vernacular field only. === Detailed summary in vernacular field only. |
---|