gpt4 book ai didi

ios - 在没有 DTrace 的情况下,Instruments 如何从 iOS 收集数据?

转载 作者:技术小花猫 更新时间:2023-10-29 11:23:50 35 4
gpt4 key购买 nike

我正在尝试了解 XCode 的 Instruments 的内部工作原理。在 MacOS 上,它可以依靠 DTrace 来收集各种分析数据。在 iOS 上,它也能做很多事情,但我反复读到 DTrace 还没有移植到 iOS。

那么它是如何工作的呢?

关于 DTrace 的 Apple 文档并没有告诉我很多关于此处内部工作原理的信息。然而,我注意到,当使用 Instruments 从 XCode 分析我自己的应用程序时,XCode 似乎以不同的方式构建它。这是否意味着它将一些独立的 DTrace 提供程序与我的代码链接起来?

提前致谢!

/e:如果可以的话,我会用我的全部 6 个声誉点数来回答这个问题......

最佳答案

对于在模拟器内运行的 iOS 应用程序,显然模拟器是一个 Mac OS X 程序,因此它可以使用 DTrace 来监控模拟器所做的一切。

对于在 iPhone 上运行的 iOS 应用程序,我同意文档对正在发生的事情提供的信息很少。它可能正在将监视代码加载到 iOS 上的目标进程中(通过在编译时添加代码或通过在运行时将其链接),或者在 iOS 上针对目标进程运行“传统调试器”以实现跟踪。如果没有对使用 DTrace 的内核级支持,这些几乎是唯一的选择。

我从未使用过 Instruments,但最让我吃惊的是,它们能够收集关于 I/O 的看似操作系统级别的统计数据,如果没有 DTrace,这些数据通常是无法测量的。我不确定,因为我没有使用过它,但这些统计数据可能只是跟踪来自易于检测的入口点的 I/O(即来自特定目标进程的 I/O 相关系统调用),或者有操作系统发布的其他特定于 iOS 的统计数据源。例如,许多系统统计信息可以通过调用 sysctl 从 Mac OS X 获得。 .根据实际收集的统计数据,Instruments 可能只使用像这样的简单计数器来完成大部分工作。

如果您真的下定决心要找到答案,那么通过 DTracing Instruments 本身解决这个问题将是一个有趣的 DTrace 挑战。祝你好运:-)

关于ios - 在没有 DTrace 的情况下,Instruments 如何从 iOS 收集数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873353/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com