重要更新
在Xcode 4.2中修复了奇怪的错误(至少对我而言)!
我在Mac OS X Lion下使用Xcode 4.1 Build 4B110并通过Xcode运行Instruments时遇到了严重问题.问题是如果我通过Xcode启动它,仪器会部分冻结.因此,如果我在Xcode 4.1中启动项目并打开"Profile",则会出现Instruments UI.计时器开始运行,但仪器应用程序不跟踪任何事情和更严重的问题:
该程序似乎正在运行,但对我所做的任何操作都没有反应.所以我无法点击任何按钮等.没有任何反应.计时器仍在运行,但我无能为力.所以我也不能再关闭窗口/应用程序了.所以我要强制停止仪器应用程序.
但是,如果我直接通过Developer/Applications/Instruments.app
一切启动仪器应用程序是好的.当然应用程序不会跟踪任何内容,但我可以点击按钮和那里的任何可能.
那么有谁知道这个问题?
有谁知道如何解决这个奇怪的问题?
我还删除了带有相应deinstall-script文件的developers文件夹并重新安装了Xcode 4.1.但仍然是同样的问题.
任何人都可以给我一个提示,提示等吗?
会真的很棒!
更新
所以,更奇怪的东西:
配置文件不知何故适用于iOS 3.0版本的应用程序,但在短暂的休息之后,它没有再次工作.所以我不知道这个bug的位置.我想这是关于目标应用iOS版本.
谢谢,安德烈亚斯
我正在Snow Leopard上运行XCode 3.2而我正试图对我的应用程序运行Zombies工具,但选择是灰色的,我不知道为什么.我知道NSZombieEnabled环境变量.我的应用程序设置为YES.我不确定这是否重要,但是,该应用程序是我开始使用之前版本的XCode在Leopard上开发的应用程序.这是我的菜单的截图:
我目前正在通过bash脚本使用Instruments来启动命令行界面以启动Automation插件的运行.
使用4.2,这很好用,但是随着Xcode 4.3的升级,我现在被提示让授权用户"分析其他进程".即使授予了正确的凭据,也不会对用户进行实际身份验证.我收到以下错误:
Failed to authorize rights (0x20) with status: -60007.
2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher service: (os/kern) failure
Run Code Online (Sandbox Code Playgroud)
即使身份验证失败,自动化插件也会执行,但这需要我的脚本让物理保姆输入凭据,这在很多方面都会破坏这些命令行运行的目的.是否可以将用户详细信息添加为参数?或者是否有其他方法可以跳过此提示而无需按键人员?
- 编辑 -
当您尝试首次从GUI运行UIAutomation测试时,会出现此授权对话框.
- 编辑 -
在GUI中应答授权对话框后,提示将停止显示在命令行上.然而,这种解决办法似乎不是一个"答案".
instruments ios xcode-instruments ios-ui-automation xcode4.3
我很难在我的iPad应用程序中修复与内存相关的问题,但是,好消息是,我因此而了解了"快照".不好的是,我仍然无法弄清楚提供给我的一些信息是什么意思.
那么,这些非对象仍然存在并占据堆增长中描述的大部分内存?有可能摆脱它们吗?看起来大多数都与各种绘图操作,CALayer,上下文等有关(类别:"Malloc"或"Realloc").如果需要,我可以提供更多细节.
OSX Mountain Lion不再支持允许您配置自定义性能计数器的Shark,因为它无法运行32位内核.Instruments.app,Apple替代Shark,似乎不支持阅读性能计数器,如L1缓存命中/未命中**.无论如何在OS X上实际设置和读取性能计数器?即使没有应用程序,是否有一些用户土地API来执行此操作?
**Instruments.app似乎有一个性能计数器接口,但在我的Retina MacBook Pro上,PM Events窗口没有列出任何事件,并指示"Device:Unknown".仪器还有其他替代品吗?
我今天升级到xcode 5.0.然后我按下播放在iOS模拟器中运行我的项目.这最初奏效了.然后我决定要运行探查器.当我这样做时,我收到了消息:
Xcode cannot run using the selected device.
Choose a destination with a supported architecture in order to run on this device.
Run Code Online (Sandbox Code Playgroud)
我看了几个关于这个问题的帖子,并决定做一个Clean and Build.现在我再也无法在探查器或模拟器中运行了.我一直得到这样的信息:
Xcode cannot run using the selected device.
Choose a destination with a supported architecture in order to run on this device.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
以下是各种设置:
我的部署目标是6.1
我也尝试将部署目标更改为7.0,但这也不起作用
我一直试图执行一些OpenGL ES性能优化,试图增加我能够在我的iPhone应用程序中呈现的每秒三角形数量,但我已经碰到了一堵砖墙.我已经尝试将我的OpenGL ES数据类型从固定点转换为浮点(根据Apple的推荐),交错我的顶点缓冲区对象,并最大限度地减少绘图状态的变化,但这些变化都没有对渲染速度产生影响.无论如何,我似乎无法在运行3.0操作系统的iPhone 3G上将我的应用程序推到320,000三角形以上.根据这个基准测试,我应该能够使用我正在使用的平滑阴影在这个硬件上达到687,000个三角形/秒.
在我的测试中,当我在Instruments中运行OpenGL ES性能工具对运行的设备时,我看到统计"Tiler利用率"在渲染我的基准测试时达到接近100%,但"渲染器利用率"仅达到约30 %.这可能提供了关于显示过程中瓶颈是什么的线索,但我不知道这些值是什么意思,我没有找到任何关于它们的文档.有人对iPhone OpenGL ES仪器中的这个和其他统计数据有什么好的描述吗?我知道iPhone 3G中的PowerVR MBX Lite是基于图块的延迟渲染器,但我不确定渲染器和Tiler在该架构中的区别.
如果它有任何帮助,如果您想自己下载和测试,可以使用此应用程序的(BSD许可的)源代码.在当前配置中,每次加载新的分子结构并将三角形输出到控制台时,它会启动一个小基准.
我试图在我的代码中找到另一个内存泄漏,我似乎无法弄清楚CG Raster Data是什么.在启用自动快照的情况下通过VM Tracker时,CG栅格数据似乎是唯一增加的部分.这些也在不增加分配的情况下稳步增加.
我不完全确定CG栅格数据是什么,也不确定如何修复它,但此时增加的占用空间最终会导致内存错误和崩溃,所以它并不好!我做自己的文本渲染(使用CoreText),所以我认为它与它有关.我也在加载图片?
下面是足迹的图像:
更新: 这个问题仍然存在,但有趣的是,我可以将它与UIFoundations中的泄漏关联到称为"NSConcreteGlyphGenerator"的东西.它似乎只发生在我实际绘制的CoreText方法中的属性字符串上调用"boundingRectWithSize:"方法时.该行具体是:
[displayString boundingRectWithSize:CGSizeMake( self.frame.size.width, self.frame.size.height ) options:0 context:nil];
Run Code Online (Sandbox Code Playgroud)
慢慢跟踪它......
MacOSX Xcode Instruments非常适合分析本机代码.但是,我的callstacks中还有很多Python调用.我可以以某种方式使仪器具有Python感知能力吗?
我能想到的一个解决方案是,当它看到一些PyEval_EvalFrameEx
框架时,它在其局部变量/参数中查找以分隔不同的Python调用并向我显示一些调用信息.
我不是在问一个Python分析器.我想描述我的本机代码.但是在这个本机代码分析中,我想添加一些进一步的智能来分析和翻译Python堆栈帧.
instruments ×10
xcode ×5
objective-c ×4
ios ×3
iphone ×3
macos ×2
memory-leaks ×2
build ×1
core-text ×1
ipad ×1
opengl-es ×1
osx-lion ×1
performance ×1
profile ×1
python ×1
xcode4.3 ×1