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 中的 Ctrl+拖动操作期间看不到事件/动作列表