mxSignpost 事件在 Xcode Organizer 中是不是可见?

Posted

技术标签:

【中文标题】mxSignpost 事件在 Xcode Organizer 中是不是可见?【英文标题】:Are mxSignpost events visible in Xcode Organizer?mxSignpost 事件在 Xcode Organizer 中是否可见? 【发布时间】:2021-08-05 04:23:55 【问题描述】:

我可以将一些重要的代码(我想观察新应用版本的性能变化)包装在

let handle = MXMetricManager.makeLogHandle(category: "Custom Category")
mxSignpost(.begin, log: handle, name: "Custom Event Name")

mxSignpost(.end, log: handle, name: "Custom Event Name")

据我了解,当我使用MXMetricManager.shared.add(someClass)MXMetricManagerSubscriber 委托时,我每24 小时收到一次报告,这些报告将包含mxSignpost(.begin)mxSignpost(.end) 之间的时间间隔的单独性能部分。

问题:

我可以在 Xcode Organizer 中从上面的代码中看到“自定义事件名称”或“自定义类别”的这些性能分离吗?

【问题讨论】:

【参考方案1】:

文档中的度量组织者没有此功能:

MetricKit 超越了 Metrics Organizer 中显示的指标,包括平均像素亮度、蜂窝网络状况以及与您应用中的自定义 OSSignpost 事件相关的持续时间。 https://developer.apple.com/documentation/metrickit/improving_your_app_s_performance.

获取路标信息的唯一方法是检查MXMetricPayload

import UIKit
import MetricKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 
        MXMetricManager.shared.add(self)
        return true
    

    func applicationWillTerminate(_ application: UIApplication) 
        MXMetricManager.shared.remove(self)
    


extension AppDelegate: MXMetricManagerSubscriber 
    func didReceive(_ payloads: [MXMetricPayload]) 
        for payload in payloads 
            if let signpostMetrics = payload.signpostMetrics 
                for metric in signpostMetrics 
                    print(metric.description)
                
            
        
    

【讨论】:

谢谢@iUrii,我给你赏金?

以上是关于mxSignpost 事件在 Xcode Organizer 中是不是可见?的主要内容,如果未能解决你的问题,请参考以下文章

细思极恐的xcode事件

属于多个层次结构的成员的路径是啥?

在 Xcode 中的 Ctrl+拖动操作期间看不到事件/动作列表

animateWithDuration 在升级到 xcode 4.6 后导致 ios4 上的触摸事件出现问题

XCode - 图像上触摸事件的确切相对坐标 - iOS

安天Xcode非官方版本恶意代码污染事件(XcodeGhost)的分析与综述