3,034 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

    Managing big data experiments on smartphones

    Get PDF
    The explosive number of smartphones with ever growing sensing and computing capabilities have brought a paradigm shift to many traditional domains of the computing field. Re-programming smartphones and instrumenting them for application testing and data gathering at scale is currently a tedious and time-consuming process that poses significant logistical challenges. Next generation smartphone applications are expected to be much larger-scale and complex, demanding that these undergo evaluation and testing under different real-world datasets, devices and conditions. In this paper, we present an architecture for managing such large-scale data management experiments on real smartphones. We particularly present the building blocks of our architecture that encompassed smartphone sensor data collected by the crowd and organized in our big data repository. The given datasets can then be replayed on our testbed comprising of real and simulated smartphones accessible to developers through a web-based interface. We present the applicability of our architecture through a case study that involves the evaluation of individual components that are part of a complex indoor positioning system for smartphones, coined Anyplace, which we have developed over the years. The given study shows how our architecture allows us to derive novel insights into the performance of our algorithms and applications, by simplifying the management of large-scale data on smartphones

    Enhancing Mobile Device System using Information from Users and Upper Layers

    Get PDF
    Despite the rapid hardware upgrades, a common complaint among smartphone owners is the poor battery life. to many users, being required to charge the smartphone after a single day of moderate usage is unacceptable. Moreover, current smartphones suffer various unpredictable delays during operation, e.g., when launching an app, leading to poor user experience. In this dissertation, we provide solutions that enhance systems on portable devices using information obtained from their users and upper layers on the I/O path. First, we provide an experimental study on how storage I/O path upper layers affect power levels in smartphones, and introduce energy-efficient approaches to reduce energy consumption facilitating various usage patterns. at each layer, we investigate the amount of energy that can be saved, and use that to design and implement a prototype with optimal energy savings named SmartStorage. We evaluate our prototype by using the 20 most popular android applications, and our energy-efficient approaches achieve from 23% to 52% of energy savings compared to using the current techniques. Next, we conduct the first large-scale user study on the I/O delay of android using the data collected from our android app running on 2611 devices within nine months. Among other factors, we observe that reads experience up to 626% slowdown when blocked by concurrent writes for certain workloads. We use this obtained knowledge to design a system called SmartIO that reduces application delays by prioritizing reads over writes. SmartIO is evaluated extensively on several groups of popular applications. The results show that our system reduces launch delays by up to 37.8%, and run-time delays by up to 29.6%. Finally, we study the impact of memory on smartphone user-perceived performance. Our heap usage investigation of 20 popular applications indicates that rich multimedia applications have high heap usage and go above allowed boundaries, up to 5.63 times more heap than guaranteed by the system, and may cause crashes and erroneous behaviors. Moreover, limited heap may not only cause an app to crash, but may even prevent an app from launching. Therefore, we present iRAM, a system that maintains optimal heap size limits to avoid crashes, efficiently maximizes free memory levels, and cleans low-priority processes to reduce application delays. The evaluation indicates that iRAM reduces application crashes by up to 14 percent

    Investigating optimal internet data collection in low resource networks

    Get PDF
    Community networks have been proposed by many networking experts and researchers as a way to bridge the connectivity gaps in rural and remote areas of the world. Many community networks are built with low-capacity computing devices and low-capacity links. Such community networks are examples of low resource networks. The design and implementation of computer networks using limited hardware and software resources has been studied extensively in the past, but scheduling strategies for conducting measurements on these networks remains an important area to be explored. In this study, the design of a Quality of Service monitoring system is proposed, focusing on performance of scheduling of network measurement jobs in different topologies of a low-resource network. We also propose a virtual network testbed and perform evaluations of the system under varying measurement specifications. Our results show that the system is capable of completing almost 100% of the measurements that are launched by users. Additionally, we found that the error due to contention for network resources among measurements stays constant at approximately 34% with increasing number of measurement nodes

    EavesDroid: Eavesdropping User Behaviors via OS Side-Channels on Smartphones

    Full text link
    As the Internet of Things (IoT) continues to evolve, smartphones have become essential components of IoT systems. However, with the increasing amount of personal information stored on smartphones, user privacy is at risk of being compromised by malicious attackers. Although malware detection engines are commonly installed on smartphones against these attacks, attacks that can evade these defenses may still emerge. In this paper, we analyze the return values of system calls on Android smartphones and find two never-disclosed vulnerable return values that can leak fine-grained user behaviors. Based on this observation, we present EavesDroid, an application-embedded side-channel attack on Android smartphones that allows unprivileged attackers to accurately identify fine-grained user behaviors (e.g., viewing messages and playing videos) via on-screen operations. Our attack relies on the correlation between user behaviors and the return values associated with hardware and system resources. While this attack is challenging since these return values are susceptible to fluctuation and misalignment caused by many factors, we show that attackers can eavesdrop on fine-grained user behaviors using a CNN-GRU classification model that adopts min-max normalization and multiple return value fusion. Our experiments on different models and versions of Android smartphones demonstrate that EavesDroid can achieve 98% and 86% inference accuracy for 17 classes of user behaviors in the test set and real-world settings, highlighting the risk of our attack on user privacy. Finally, we recommend effective malware detection, carefully designed obfuscation methods, or restrictions on reading vulnerable return values to mitigate this attack.Comment: 15 pages, 25 figure

    Performance Analysis of QUIC Protocol Used for Real-World Automated Meter Reading Application

    Get PDF
    openThe QUIC is a new encrypted transport protocol, designed on the basis of decades of transport and security experience, with the aim to find a valid, more performing substitute to TCP protocol in all its internet implications. Originally designed by Google, QUIC has taken all the best qualities of TCP connections and TLS encryption and implemented them over UDP. The goal of this thesis is to provide an in-depth study of implementing QUIC protocol for automated meter reading applications which enables automatic collection of consumption data, eliminates manual meter reading, improves efficiency, and saves costs. Finally, consideration of the algorithm’s limitations has been discussed together with ideas for future work and improvements.The QUIC is a new encrypted transport protocol, designed on the basis of decades of transport and security experience, with the aim to find a valid, more performing substitute to TCP protocol in all its internet implications. Originally designed by Google, QUIC has taken all the best qualities of TCP connections and TLS encryption and implemented them over UDP. The goal of this thesis is to provide an in-depth study of implementing QUIC protocol for automated meter reading applications which enables automatic collection of consumption data, eliminates manual meter reading, improves efficiency, and saves costs. Finally, consideration of the algorithm’s limitations has been discussed together with ideas for future work and improvements
    • 

    corecore