MTHawkeye is profiling, and debugging tools for iOS used in Meitu. It's designed to help iOS developers improve development productivity and assist in optimizing the App performance. During the App product development cycle, we introduced MTHawkeye to help us discover, find, analyze, locate, and solve problems faster. Development phase, focusing on development and debugging assistance, detect problems in a timely manner, and prompt developers to deal with them. Test phase, focusing on collecting performance data as much as possible from the test case, for generating automated test analysis reports. The online phase, focuses on performance data that needs by our own business but missing from third-party APM components. MTHawkeye has built-in some common performance detection plug-ins. It also introduces and improves FLEX as a plug-in for debugging assistance. When you use MTHawkeye, you can customize and add the plug-ins you need.
Features
- MTHawkeye can be divided into upper, middle and lower layers
- The Base layer mainly provides plugin management capabilities, storage API and util classes
- The built-in plugins are divided into Memory, TimeConsuming, Energy, Network, Graphics, Storage, Utility according to the focus points
- LivingObjectSniffer is mainly used to track and observe objects directly or indirectly held by ViewController
- UITimeProfiler is used to assist in optimizing the time-consuming tasks of the main thread
- ANRTrace is used to capture the stuck event, and will sample the main thread stack frame when the jam occurs