Enterprise Mobility – Performance Know-How
Enterprise Mobility : Business Importance
- Tablet industry growing from 233 million in 2013 to 1 billion in 2017 for a CAGR of 36%, according to Yankee group
- According to a recent study, By 2015, the world’s mobile worker population will reach 1.3 billion, representing 37.2% of the total workforce. According to an updated forecast from International Data Corporation (IDC)
- Mobile analytics gives enterprise organization the ability to analyze, collaborate, and act within a single workflow for better decisions – across lines of business and in any industry, which involves high volume of business data in the backend
- Utilizing mobile devices requires that by considering limited CPU speed, reduced memory and storage, narrow bandwidth and high latency connections, and limited battery life
- Complex device/user traffic
- High user experience (Mobile ≠ Desktop !!!)
- Devices with different hardware configurations
- Diverse network connectivities/technologies
It is important to achieve good performance and scalability with Mobile Enterprise Applications.
Enterprise Mobility – Architecture
Important Performance KPIs for Mobile Applications
- End 2 End Response : Very high priority KPI in the customer perspective. This will be the combination of response time from each layer(Device to Middleware to backend to device).
Remark : E2E response also includes the network latency. LAN network latency b/w different application server back ends with middleware and WiFi/3G/4G network latency, where device operates. Since control over network latency is limited, tight coding standards to achieve better performance is important.
- Roundtrips : one network roundtrip per user interaction step.
- Transferred data volume : Keep the data volume as low as possible (approx. 10 ~ 20 KB per user interaction step).
- CPU Time : Minimum device CPU consumption.
- Memory : Minimum memory consumption.
- Memory Leak : Zero memory leaks
Performance Characteristics – Offline Application
Data Volume and Throughput Characteristics
- App performance is determined by device persistence performance
- Typical number of total BO instances on a single device is dependent on the platform
- Typical throughput of 100 uploaded CRUD messages per device and day
Resource Consumption on Server Side
- Low performance impact on backend system
- DOE is the multiplying component
- Typically two synchronization peaks per day (Morning and Afternoon)
- Sizing of landscape is critical because of idle vs. peak time
Performance Characteristics – Online Application
Data Volume and Throughput Characteristics
- Each device is fetching the business data from the backend
- Low number of screens/objects
- Low number of CRUD messages per device and day
- Recommendation: not more than 100 objects per screen/list
Resource Consumption on Server Side
- High performance impact on backend system
- One device user is creating a backend load equivalent to one online user
- App performance is determined by server stacks and connectivity
Performance Recommendations :
App Implementation
- Smart caching mechanism is essential for good performance. Reuse configuration/customizing data
- Think about doing asynchronous prefetching of business data
- Splitting the data that is retrieved into multiple requests. Load important data first, display it and then retrieve the remaining data e.g. pictures asynchronously
- No more than two round trips in parallel, because GSM/3G networks will add because of serialization and low bandwidth a lot of response time
- Keep data volume at a minimum, recommendation is 10 KB compressed data volume per screen
Architectural Design
- App performance is determined by server stacks and network connectivity
- For optimal performance the app design has to follow the backend applications
- Keep the resource consumption in backend at a minimum to ensure good response time
Performance Tools
Tools for iOS
Instruments can be used for analysis of most of performance related issues
- Memory Leak detection
- Memory allocation
- Method Profiling
- Frame Rate of views with animations
- Battery usage
- Test Automation
Fiddler can be used for analysis of HTTP communication
For details see https://developer.apple.com/Instruments
Tools for Android
Tool | Description | Link |
---|---|---|
DDMS | Shows heap memory usage | http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html |
Eclipse Memory Analyzer | Tool to analyze heap dumps | http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html
http://kohlerm.blogspot.com/2010/02/android-memory-usage-analysis-slides.html |
Traceview | Profiler | http://developer.android.com/guide/developing/debugging/debugging-tracing.html
http://android-developers.blogspot.com/2010/10/traceview-war-story.html |
Hierarchy Viewer | Tool to optimize the user interface (remove unnecessary UI elements etc.) | http://developer.android.com/guide/developing/debugging/debugging-ui.html |
Fiddler | Tool for monitoring network traffic. The provided link shows a how to on an iPhone Device. The how to on an Android Device will be provided from our side |
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html |
For details see https://developer.android.com/