Không đồng bộ
You’ve probably interacted with an app on your phone or tablet that’s slow, takes a long time to load, freezes, or even crashes on you altogether.
On the flip side, you can probably think of an app that you love to use because from day one, it’s never given you any trouble.
Or maybe you never paid any mind to an app that works quickly, because isn’t that how it’s supposed to be?
So, what causes one app to be crash-prone and another, fast, and reliable?
A developer or mobile tester can measure the performance of an application in different scenarios.
For example, they can test for when there’s a concurrency of users on the app at the same time, on different devices (which vary in hardware resources and screen sizes), and multiple networks such as 3G, 4G, Wifi, and more.
The reality is that many variables affect the performance of a mobile application. Moreover, a user may have a very bad experience with your app and the cause might not even have anything to do with the code or its implementation.
But, by running performance tests for each of these three factors, you’ll be able to identify problems and optimize your app for the best user experience possible.
Keep reading as we’ll cover the different types of tests for each factor, what to measure, and what tools are available to help you along the way.
A mobile app’s backend architecture is generally based on an application server, a web server, and a database.
**When it comes to the backend, the things related to performance that are important to know when an app is under load are the server’s response times, database queries times, and the server’s resource usage. **
Using this information, it’s easier to detect issues such as:
This is when you simulate load on the backend in different ways, whether it be through stress testing, peak testing, endurance testing, load testing, etc.
In general, the objective of these tests is to understand how the backend systems of an app behave and handle a certain volume of concurrent users.
Several tools allow you to load test your mobile app. The most commonly used ones include:
Apache JMeter – the number one open-source load testing tool
Gatling– a developer-friendly, open-source load testing tool with scripts written in Scala
BlazeMeter – a cloud performance testing platform that scales your JMeter or Gatling tests for a greater amount of concurrent users
With regards to the network that the device is connected to, there are two key things to measure: latency and bandwidth.
For mobile performance, the lower the latency and the higher the bandwidth, the better.
An app’s performance can vary depending on, for example, whether it’s connected to a 3G network or a 4G network, and unfortunately, this is beyond an app developer or tester’s control.
But, it is possible to incorporate the network during the mobile app performance testing process, simulating the different types of networks and measuring their impact on the response times, both on the server-side and the client-side.
#tutorial #performance #mobile apps #load testing #mobile testing #mobile app performance #client side performance
HTML to Markdown
MySQL is the all-time number one open source database in the world, and a staple in RDBMS space. DigitalOcean is quickly building its reputation as the developers cloud by providing an affordable, flexible and easy to use cloud platform for developers to work with. MySQL on DigitalOcean is a natural fit, but what’s the best way to deploy your cloud database? In this post, we are going to compare the top two providers, DigitalOcean Managed Databases for MySQL vs. ScaleGrid MySQL hosting on DigitalOcean.
At a glance – TLDR
ScaleGrid Blog - At a glance overview - 1st pointCompare Throughput
ScaleGrid averages almost 40% higher throughput over DigitalOcean for MySQL, with up to 46% higher throughput in write-intensive workloads. Read now
ScaleGrid Blog - At a glance overview - 2nd pointCompare Latency
On average, ScaleGrid achieves almost 30% lower latency over DigitalOcean for the same deployment configurations. Read now
ScaleGrid Blog - At a glance overview - 3rd pointCompare Pricing
ScaleGrid provides 30% more storage on average vs. DigitalOcean for MySQL at the same affordable price. Read now
MySQL DigitalOcean Performance Benchmark
In this benchmark, we compare equivalent plan sizes between ScaleGrid MySQL on DigitalOcean and DigitalOcean Managed Databases for MySQL. We are going to use a common, popular plan size using the below configurations for this performance benchmark:
ScaleGridDigitalOceanInstance TypeMedium: 4 vCPUsMedium: 4 vCPUsMySQL Version18.104.22.168.20RAM8GB8GBSSD140GB115GBDeployment TypeStandaloneStandaloneRegionSF03SF03SupportIncludedBusiness-level support included with account sizes over $500/monthMonthly Price$120$120
As you can see above, ScaleGrid and DigitalOcean offer the same plan configurations across this plan size, apart from SSD where ScaleGrid provides over 20% more storage for the same price.
To ensure the most accurate results in our performance tests, we run the benchmark four times for each comparison to find the average performance across throughput and latency over read-intensive workloads, balanced workloads, and write-intensive workloads.
In this benchmark, we measure MySQL throughput in terms of queries per second (QPS) to measure our query efficiency. To quickly summarize the results, we display read-intensive, write-intensive and balanced workload averages below for 150 threads for ScaleGrid vs. DigitalOcean MySQL:
ScaleGrid MySQL vs DigitalOcean Managed Databases - Throughput Performance Graph
For the common 150 thread comparison, ScaleGrid averages almost 40% higher throughput over DigitalOcean for MySQL, with up to 46% higher throughput in write-intensive workloads.
#cloud #database #developer #digital ocean #mysql #performance #scalegrid #95th percentile latency #balanced workloads #developers cloud #digitalocean droplet #digitalocean managed databases #digitalocean performance #digitalocean pricing #higher throughput #latency benchmark #lower latency #mysql benchmark setup #mysql client threads #mysql configuration #mysql digitalocean #mysql latency #mysql on digitalocean #mysql throughput #performance benchmark #queries per second #read-intensive #scalegrid mysql #scalegrid vs. digitalocean #throughput benchmark #write-intensive
The invention of mobile phones led to wireless connections between people communicating over a long distance. Users were happy to stay connected with wide coverage offered to them via different cellular phone networks.
Gradually, it became a normal thing for anyone to have a portable phone in their pockets.
As time passed, different innovations influenced the mobile phone technology, thereby, making many functions easier and hassle-free for users.
Today, mobile phones are updated with the latest applications that make various processes and activities easier for daily life. In fact, one cannot imagine life without a mobile phone.
Mobile phones were once a device that enabled communication over a long distance, but now, it has become a tool that makes everything accessible anytime anywhere in just a few clicks.
Starting from booking a cab to ordering food from your favorite restaurant, mobile apps have made life much easier and more convenient than ever before.
As these apps play a dominating role in the lives of individuals, it is important that the performance of these mobile applications is never negatively impacted. This is what makes optimizing mobile app performance a necessity.
Imagine you are too hungry to wait at a restaurant and you pick up your mobile phone to order your favorite food from your favorite restaurant. But, the app is not working properly.
As a result, you are unable to place your order. Will you go back to the same app ever again after the issue? No, right? So, when asked why it is important to optimize a mobile app, the most important answer is user retention.
To be more precise, a mobile app used for any service becomes an important platform for communication between the user and the service provider via easy navigation and proper interface. You can only hold on to a relationship when you can communicate properly.
Hence, having a better communicative platform will definitely lead to improved user retention.
As soon as a developer decides to work on optimizing a mobile app, there are multiple factors that need need their attention:
When you are developing a mobile app, think about the customers you or your client are going to serve.
Hence, the process must consider customers or users as the prime factor influencing the development procedure.
While using a mobile app, people want to have an easy user interface along with a stable speed to help the app run. Keep in mind the same concepts when initially developing mobile apps, as well.
Mobile applications are used by people irrespective of the places they are in or the time they are contacting their service providers. In short, they may use it from home or on the go.
However, cellular network coverage is not always the same. Hence, being a developer, you must ensure that your app can adapt to changing network coverage offered by different network carriers.
Remember, if users are not happy while using your app, they won’t come back. Keep this factor in mind and then develop one. If your client loses users, neither they will get the customer back nor will you get your client back. So, be prepared.
When the mobile apps that you develop are in line with the users’ expectations, the latter proves relevant and results in solid feedback and positive reviews online.
#mobile #usability #performance #monitoring #mobile app #optimization #ui #users #app performance
The .NET team has significantly improved performance with .NET 5, both generally and for ARM64. You can check out the general improvements in the excellent and detailed Performance Improvements in .NET 5 blog by Stephen. In this post, I will describe the performance improvements we made specifically for ARM64 and show the positive impact on the benchmarks we use. I will also share some of the additional opportunities for performance improvements that we have identified and plan to address in a future release.
While we have been working on ARM64 support in RyuJIT for over five years, most of the work that was done was to ensure that we generate functionally correct ARM64 code. We spent very little time in evaluating the performance of the code RyuJIT produced for ARM64. As part of .NET 5, our focus was to perform investigation in this area and find out any obvious issues in RyuJIT that would improve the ARM64 code quality (CQ). Since Microsoft VC++ team already has support for Windows ARM64, we consulted with them to understand the CQ issues that they encountered when doing a similar exercise.
#.net core #.net internals #c# #dot.net #performance #.net #arm #arm64 #performance #ryujit
Không đồng bộ