Profile the Performance of AI and ML Mobile Applications on Arm
Introduction
Why should you profile your ML application?
Profile your application with Streamline
Memory Profiling with Android Studio
Profiling the Neural Network
ML Profiling of a LiteRT model with ExecuteNetwork
ML Profiling of an ExecuTorch model
Next Steps
Profile the Performance of AI and ML Mobile Applications on Arm
Who is this for?
This is an introductory topic for software developers who want to learn how to profile the performance of Machine Learning (ML) models running on Arm devices.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Profile the execution times of ML models on Arm devices.
- Profile ML application performance on Arm devices.
- Describe how profiling can help optimize the performance of Machine Learning applications.
Prerequisites
Before starting, you will need the following:
- An Arm-powered Android smartphone, and a USB cable to connect to it.
- For profiling the ML inference, Arm NN ExecuteNetwork or ExecuTorch .
- For profiling the application, Arm Performance Studio with Streamline .
- Android Studio Profiler.
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
ExecuteNetwork to run a LiteRT model outside your app, examine its layer timings, and identify model bottlenecks. Finally, you’ll adapt ExecuTorch profiling tools for Android.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
--iterations 2 flag. The first run includes startup costs and one-off optimizations, so a second run is useful as the more representative performance measurement. The command writes layer timings to modelout.txt.ExecuteNetwork for layer timings. Without Arm NN, treat ExecuteNetwork results as indicative rather than definitive.