- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试了解 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/
这个问题在这里已经有了答案: What is instrumentation? (5 个回答) 4年前关闭。 正如标题所暗示的那样。很多解释真的很模糊,谁能提供一个更可靠的定义? 该术语在 Andro
我正在使用java.lang.instrument包来获取java对象的内存大小(可以嵌套)。 我使用下面的方法来获取对象大小: import java.lang.instrument.Instrum
Xcode Instruments 中是否有一个 Instrument 可以记录我的代码进行的所有调用(无论是否有 Apple 自己的框架)。 最接近的工具似乎是 Time Profiler。 但是,
当我使用 xCode 运行我的应用程序时,所有负载都运行良好。当我使用 Activity Monitor 或 Allocations 的分析模板加载 Instruments 并按下记录时,它加载并运行
如果我尝试使用 import java.lang.instrument.Instrumentation; 它说这个语句无法解决。可能出什么问题了?我使用的是jdk1.6。 最佳答案 您确定这正是您的导
当我尝试运行 SignUpFragmentTest 类时,出现错误“未注册检测!必须在注册检测下运行”。我认为当我使用@Rule 时会抛出错误。 import android.support.test
是否可以在 JUnit 测试中使用 java.lang.instrument.Instrumentation?我正在使用 mockrunner 来模拟一个 Servlet,并想测量 session 中
我最近搬到了另一台电脑,需要重置我的所有环境。 所以,这个测试以前是有效的。 但是我不记得我以前使用的是哪个版本的 Java/JDK。 好吧,问题是: java.lang.instrument.Ill
我是 Xcode 和 iOS 的新手,今天一直在尝试使用 Instruments 工具。有些事情我正在努力解决: 场景: 我创建了一个简单的应用程序,它使用 UISearchBar 过滤 UITabl
我使用 java.lang.instrument.Instrumentation#redefineClasses() 重新定义现有类。有时,我需要重新定义几个类。 如果我一个一个地重新定义类,我就会知
要检查 iOS 应用程序的内存使用情况,请说代码是否为 int n = 1000000; NSObject *bar = [[NSObject alloc] init]; foo = [[NSMuta
我正在尝试通过 Corda Hello world example (特别是 Java 版本)。 我已经到了 nodes should be deployed但这失败了: > ./gradlew cl
(Xcode 4.5) 当从命令行运行仪器时,它第一次可以工作,但直到我重新启动后它才会再次运行。 仪器的详细输出包括: Instruments : Loading template 'file://
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我是 zipkin 和 brave api 的新手,用于分发跟踪。我在本地主机上设置了一个 zipkin 服务器,监听端口 9411。我执行了下面的函数,但在我的 zipkin 服务器中没有显示任何跟
我正在开发一个名为 "Cloudnet-v3" 的开源项目。我在本地计算机上使用符号链接(symbolic link)/data 到 IntelliJProjects-Folder 中的数据点。 我得
我目前正在使用 Android 仪器测试测试我的示例应用程序。默认情况下,项目创建 AndroidTest文件夹给我。我只是在文件夹中添加了更多测试用例。 我以前用expresso触发 UI 按钮,但
好的,这是我的问题,如果重复,我深表歉意。我进行了搜索,但找不到任何我认为相关的内容。 当我从 xcode 运行仪器并开始测试我的应用程序是否存在内存泄漏或分配时,我的 iMac 最终开始运行得很慢。
我在 Xcode 中启动 Time Profiler 时遇到问题,无论是 Mac 应用程序还是 iPhone 应用程序。 我尝试过的步骤是打开时间分析器,单击选择目标下拉框,选择我的 iPhone 或
我想调试我的核心动画代码。但是,仪器配置文件不存在,并且在仪器库中也不可用。 我正在使用 Xcode 4。如何安装/访问它并使其正常工作? 最佳答案 核心动画分析只能从设备上获得。如果您正在分析模拟器
我是一名优秀的程序员,十分优秀!