标签: instruments

如何显示在仪器时间分析器中调用函数的次数

我已经尝试了所有可能的字段,但无法找到调用函数的次数.

在此输入图像描述

此外,我没有得到Self# Self.这两个数字是什么意思?

macos xcode profiling instruments ios

13
推荐指数
2
解决办法
8305
查看次数

尽管所有构建设置都相反,Xcode Instruments正在剥离符号

问题

仪器的Time Profiler正在从我的应用程序中剥离除系统库之外的所有符号,尽管事实上我已经在Xcode的所有相关构建设置中禁用了这种行为 - 但仅在一台开发机器上.另一台开发机器正常运行.

描述

仪器的Time Profiler正在剥离除系统库之外的所有符号,尽管事实上我已经在Xcode的所有相关构建设置中禁用了这种行为 - 但这只发生在我的一台开发机器上.我已经运行OS X时,Xcode和仪器的同一版本二次开发的机器,每台机器使用具有相同构建设置,方案和其他配置相同的Xcode项目的相同副本,并且应用程序正在使用相同的异形测试设备(iPhone 4S与iOS 5的最新公开版本).

机器1
- Mac OS X
10.7.4 - Xcode 4.3.2(4E2002)
- 仪器4.3(4321)

机器2
- Mac OS X
10.7.4 - Xcode 4.3.2(4E2002)
- 仪器4.3(4321)

重现步骤

  1. 在每台机器上打开包含的示例项目.
  2. 确保选择iPhone 4S作为测试设备.
  3. 选择产品>配置文件
  4. 当仪器启动时,选择Time Profiler并继续.
  5. 运行应用程序.
  6. 请注意在iMac(机器1)上运行时如何剥离符号,而不是在MacBook Air(机器2)上运行.

预期的行为

我自己的代码中的符号应该出现在两台机器上的Time Profiler中.

回归

我尝试了以下所有方法,但实际结果没有变化:

  1. 重新启动机器.

  2. 尝试其他Xcode项目

  3. 删除Xcode Organizer中所有项目的"派生数据".

  4. 重新标记仪器中的文档(在〜/ Library/blahBlahBlah中仔细选择正确的DSYM文件......)

最后的笔记

以下是示例项目的.zip文件的链接:Sample Project .zip

xcode symbols instruments stripping

13
推荐指数
1
解决办法
7894
查看次数

循环和便利方法会导致ARC的内存峰值吗?

我正在使用ARC,并在循环中修改字符串时看到一些奇怪的行为.

在我的情况下,我使用NSXMLParser委托回调循环,但我看到使用演示项目和简单修改某些NSString对象的示例代码的相同的确切行为和症状.

您可以从GitHub下载演示项目,只需在主视图控制器的viewDidLoad方法中取消注释四个方法调用之一,即可测试不同的行为.

为简单起见,这是一个简单的循环,我已经陷入了一个空的单视图应用程序.我将此代码直接粘贴到viewDidLoad方法中.它在视图出现之前运行,因此屏幕为黑色,直到循环结束.

NSString *text;

for (NSInteger i = 0; i < 600000000; i++) {

    NSString *newText = [text stringByAppendingString:@" Hello"];

    if (text) {
        text = newText;
    }else{
        text = @"";
    }
}
Run Code Online (Sandbox Code Playgroud)

以下代码在循环完成之前还会保留内存:

NSString *text;

for (NSInteger i = 0; i < 600000000; i++) {

    if (text) {
        text = [text stringByAppendingString:@" Hello"];
    }else{
        text = @"";
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是这两个循环在Instruments中循环的方式,运行Allocations工具:

仪器分析重复字符串操作

看到?逐渐稳定的内存使用,直到一大堆内存警告,然后应用程序自然死亡.

接下来,我尝试了一些不同的东西.我使用了一个实例NSMutableString,如下:

NSMutableString *text;

for (NSInteger i = …
Run Code Online (Sandbox Code Playgroud)

memory-management objective-c instruments nsstring automatic-ref-counting

13
推荐指数
1
解决办法
820
查看次数

仪器中的"调用树"部分已禁用(灰色)

我知道这应该启用,但我不确定为什么它不是.我试过多个应用程序,但它没有改变它的状态.

有任何想法吗?

谢谢!

仪器呼叫树已禁用

iphone xcode instruments

13
推荐指数
1
解决办法
1957
查看次数

如何调试重载背板?

我有一个UIView子类的子实例CAShapeLayer添加为子层的几个实例.

我正在UIBezierPath为这些层中的每个层设置更改动画,这看起来很棒并且性能很好,但是backboardd当我通过Instruments中的Activity Monitor运行它时,会在该过程中达到~90%的CPU.

如何获得有关此处发生的更多信息?backboardd是GPU上核心图形/核心动画的幕后渲染,对吗?是否支持在某处进行仪器的进一步调试?我可以用GCD做些喜欢加载的东西backboardd吗?

编辑:在将这个升级为与苹果公司的TSI后,他们已经确认这是这个动画CAShapeLayers的"预期行为".叹.他们确实提供了这个链接的建议,其中涉及不断暂停和取消暂停动画以模仿较低的帧速率.(因为它是每个关闭的DisplayLink锁定动画帧的计算backboardd)

-(void)pauseLayer:(CALayer*)layer {

    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
    layer.speed = 0.0;
    layer.timeOffset = pausedTime;
}

-(void)resumeLayer:(CALayer*)layer {

    CFTimeInterval pausedTime = [layer timeOffset];
    layer.speed = 1.0;
    layer.timeOffset = 0.0;
    layer.beginTime = 0.0;
    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
    layer.beginTime = timeSincePause;
}
Run Code Online (Sandbox Code Playgroud)

最后,漂亮的Apple技术指出动画帧率控制"会提出一个不错的API增强请求,作为一个" - 所以我正在制作一个,你也应该.:)

core-graphics instruments ios

13
推荐指数
1
解决办法
9599
查看次数

在ios6上使用Xcode 5追踪僵尸

我在代码中的某个地方有一个僵尸对象,它在iOS 6.1上运行但在7中没有.

不幸的是,仪器不会与僵尸一起运行,它会弹出以下警告."僵尸只能在iOS 7或更高版本的设备上运行".

我真的不想下载旧版本的Xcode,因为互联网工作非常缓慢.

由于我的正常goto方法不可用,有什么一些提示/技巧可以找到这个僵尸的原因.

任何帮助将不胜感激.

xcode objective-c instruments ios xcode5

13
推荐指数
1
解决办法
6460
查看次数

分配跟踪库没有及时加载,无法查看堆栈跟踪

在此输入图像描述要打开仪器,我们必须首先分析然后选择我们必须分析内存泄漏,分配,僵尸的模板.但是我仍然没有加载错误分配库,也无法看到堆栈跟踪.并且在应用程序中找不到泄漏的原因

正如其他链接中提到的解决方案,我正在使用模拟器(iOS7)和主动方案(iOS7)

Xcode版本:5.0.2版(5A3005)模拟器:iOS 7.0.3(111B508)Mac:OS X版本10.8.5

如果上述任何信息不正确,请原谅.请给出答案.谢谢

xcode profiling instruments ios

13
推荐指数
1
解决办法
1480
查看次数

色彩乐器调谐器的稳健算法?

谁知道有色仪器调谐器最强大的算法?

我正在尝试写一个乐器调音器.我尝试了以下两种算法:

  1. FFT创建一个welch周期图,然后检测峰值频率

  2. 一个简单的自相关(http://en.wikipedia.org/wiki/Autocorrelation)

我遇到了以下基本问题:

  1. 精度1:在FFT中,采样率,记录长度和箱尺寸之间的关系是固定的.这意味着我需要记录1-2秒的数据才能获得几美分的准确度.这不是我所谓的实时.

  2. 准确度2:自相关效果更好一些.为了获得几美分所需的精度,我必须引入样本的线性插值.

  3. 坚固性:如果是吉他,我会看到很多泛音.有些泛音实际上比弦乐产生的主音强.我找不到一种强大的方法来选择正确的字符串播放.

尽管如此,任何便宜的电子调谐器都比我的实施更强大.这些调谐器是如何实现的?

algorithm audio instruments

12
推荐指数
2
解决办法
3163
查看次数

Xcode Instruments - Zombies - 我在寻找什么?

当我在Xcode中运行Project/Profile并选择" Zombies "时,应用程序在NSZombie detection启用了" " 的模拟器中运行.但是我该怎么想告诉我有问题呢?我看到的只是运行的分配工具和下面的统计数据.它实际上会在哪里显示Zombie检测到a?

xcode instruments nszombie ios nszombieenabled

12
推荐指数
1
解决办法
1万
查看次数

仪器>分配未显示应用程序类/对象

在以前的Instruments版本中我没有问题,但现在(v6.2)由于某些原因Allocations不会列出我的任何应用程序的对象.我尝试过调试和发布模式:

带过滤器的空分配

注意,过滤器"VC"应该捕获所有ViewControllers.没有过滤器......

没有过滤器的分配

有任何想法吗?

xcode objective-c instruments ios

12
推荐指数
1
解决办法
1779
查看次数