APM性能优化相关(swift版本 ):ANR卡顿监测、网络优化、内存监控、启动优化、常见crash防护、crash监控上报
开启卡顿监测
// 1.开启卡顿监测 SKANRMonitor.start() SKANRMonitor.monitorCallback { curEntity, allEntities in print("监测到卡顿: \(curEntity.validFunction)") print(curEntity.threadId) print(curEntity.occurenceTime) print(curEntity.validAddress) print(curEntity.traceContent) }控制台打印卡顿信息
监测到卡顿: SKApmTools_Example.ViewController.btnClicked(__C.UIButton) -> () 259 692678740.80218 0x000000010621ccce 0 Foundation 0x00007ff800c7db5d +[NSThread sleepForTimeInterval:] + 163 1 SKApmTools_Example 0x000000010621ccce SKApmTools_Example.ViewController.btnClicked(__C.UIButton) -> () + 654 2 SKApmTools_Example 0x000000010621cd55 @objc SKApmTools_Example.ViewController.btnClicked(__C.UIButton) -> () + 53 3 UIKitCore 0x0000000107b9cd05 -[UIApplication sendAction:to:from:forEvent:] + 95 4 UIKitCore 0x00000001072fec74 -[UIControl sendAction:to:forEvent:] + 110 5 UIKitCore 0x00000001072ff078 -[UIControl _sendActionsForEvents:withEvent:] + 345 6 UIKitCore 0x00000001072fb203 -[UIButton _sendActionsForEvents:withEvent:] + 148 7 UIKitCore 0x00000001072fd8cf -[UIControl touchesEnded:withEvent:] + 485 8 UIKitCore 0x0000000107be1e95 -[UIWindow _sendTouchesForEvent:] + 1292 9 UIKitCore 0x0000000107be3ef1 -[UIWindow sendEvent:] + 5304 10 UIKitCore 0x0000000107bb77f2 -[UIApplication sendEvent:] + 898 11 UIKitCore 0x0000000107c5ee61 __dispatchPreprocessedEventFromEventQueue + 9381 12 UIKitCore 0x0000000107c61569 __processEventQueue + 8334 13 UIKitCore 0x0000000107c578a1 __eventFetcherSourceCallback + 272 14 CoreFoundation 0x00007ff800387035 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 15 CoreFoundation 0x00007ff800386f74 __CFRunLoopDoSource0 + 157 16 CoreFoundation 0x00007ff800386771 __CFRunLoopDoSources0 + 212 17 CoreFoundation 0x00007ff800380e73 __CFRunLoopRun + 927 18 CoreFoundation 0x00007ff8003806f7 CFRunLoopRunSpecific + 560 19 GraphicsServices 0x00007ff809c5c28a GSEventRunModal + 139 20 UIKitCore 0x0000000107b9662b -[UIApplication _run] + 994 21 UIKitCore 0x0000000107b9b547 UIApplicationMain + 123 22 SKApmTools_Example 0x000000010621e2df main + 63 23 dyld 0x00000001063e32bf start_sim + 10 24 ??? 0x0000000112c83310 0x0 + 4610077456 开启图片尺寸检测
SKImageMonitor.start()To run the example project, clone the repo, and run pod install from the Example directory first.
SKApmTools is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SKApmTools'Xcoder1011, shangkunwu@msn.com
SKApmTools is available under the MIT license. See the LICENSE file for more info.