2 research outputs found

    React Native Performance Evaluation

    Get PDF
    Smartphones have become an ubiquitous device for people, and there are multiple mobile platforms to choose from. For mobile developers this means more work, as they will need to learn the tools and technologies unique to each platform, and develop their application separately for each platform. Cross platform tools such as React Native promise a solution where developers can use the same tools and technologies across different platforms. A React Native application is essentially a JavaScript application that controls native user interface components. As such, a React Native application has to perform more background work compared to an equivalent native mobile application. This thesis studies whether React Native carries any meaningful performance penalties with it on the Android platform, and whether it is possible to work around these problems. It aims to provide some insight into the performance figures of React Native for both developers considering the technology and researchers wanting to do further research. Methods for measuring application launch times, render latency of components, navigation latency and list scrolling are presented. In all but the last case, the measurements can be directly compared between a React Native and an Android application to find out the exact overhead of React Native in each situation. The findings indicate that React Native does incur meaningful performance penalties compared to native code. In many cases the performance hit is not significant enough to cause user frustration, but especially on older devices common operations such as application launch and component rendering are noticeably slower and may have up to 10 times longer latency than the native equivalent. On modern devices the overhead of React Native is less noticeable, making React Native a better fit when targeting newer hardware.Smarttelefoner har blivit allestÀdes nÀrvarande bland folk, och det finns flera olika plattformer att vÀlja mellan. För mobilutvecklare innebÀr detta mera arbete, eftersom de mÄste behÀrska diverse plattformers unika verktyg samt teknologier, och dessutom utveckla sina applikationer för varje platform skilt. Plattformsoberoende teknologier som t.ex. React Native erbjuder en lösning som möjliggör anvÀndningen av samma verktyg och teknologier för flera olika plattformer. En React Native applikation Àr i grund och botten en JavaScript applikation som kan rita upp nativa anvÀndargrÀnssnittskomponenter. Detta betyder att en React Native applikation Àr tvungen att göra mera arbete jÀmfört med en nativapplikation. Detta diplomarbete undersöker om huruvida React Native har nÄgra betydelsefulla prestandaproblem pÄ Android plattformen, och om det Àr möjligt att kringgÄ sÄdana problem. Arbetets syfte Àr att ge en insikt i React Natives prestanda Ät utvecklare som övervÀger att anvÀnda teknologin, samt Ät forskare som vill göra vidare forskning inom Àmnet. Metoder presenteras för att mÀta applikationers starttid, komponenters ritningstid, latens i hantering av navigation, samt rullandet av en lista. I alla utom det sista fallet kan resultaten jÀmföras direkt mellan React Native och Android, vilket ger oss exakt information över hur mycket extra berÀkningstid React Native behöver i respektive situation. Undersökningen pÄvisar att React Native Àr betydligt lÄngsammare Àn nativkod i vissa fall. Ofta Àr skillnaden inte tillrÀckligt stor för att orsaka frustration hos anvÀndaren, men speciellt pÄ Àldre telefoner kan vanliga hÀndelser som applikationens starttid eller komponenters rittid vara till och med 10 ggr. lÄngsammare i en React Native applikation jÀmfört med en ekvivalent Android applikation. PÄ moderna telefoner Àr skillnaden mellan React Native och nativkod inte lika stor, vilket gör att React Native passar bÀttre in ifall applikationens mÄlgrupp anvÀnder nyare hÄrdvara

    Enhancing Mobile Capacity through Generic and Efficient Resource Sharing

    Get PDF
    Mobile computing devices are becoming indispensable in every aspect of human life, but diverse hardware limits make current mobile devices far from ideal for satisfying the performance requirements of modern mobile applications and being used anytime, anywhere. Mobile Cloud Computing (MCC) could be a viable solution to bypass these limits which enhances the mobile capacity through cooperative resource sharing, but is challenging due to the heterogeneity of mobile devices in both hardware and software aspects. Traditional schemes either restrict to share a specific type of hardware resource within individual applications, which requires tremendous reprogramming efforts; or disregard the runtime execution pattern and transmit too much unnecessary data, resulting in bandwidth and energy waste.To address the aforementioned challenges, we present three novel designs of resource sharing frameworks which utilize the various system resources from a remote or personal cloud to enhance the mobile capacity in a generic and efficient manner. First, we propose a novel method-level offloading methodology to run the mobile computational workload on the remote cloud CPU. Minimized data transmission is achieved during such offloading by identifying and selectively migrating the memory contexts which are necessary to the method execution. Second, we present a systematic framework to maximize the mobile performance of graphics rendering with the remote cloud GPU, during which the redundant pixels across consecutive frames are reused to reduce the transmitted frame data. Last, we propose to exploit the unified mobile OS services and generically interconnect heterogeneous mobile devices towards a personal mobile cloud, which complement and flexibly share mobile peripherals (e.g., sensors, camera) with each other
    corecore