标签: xcode-instruments

将 .trace 文件保存到不同位置

我正在从命令行运行仪器。在我的命令中,我确实使用指定了输出路径

-e UIARESULTSPATH /user/xxxx
Run Code Online (Sandbox Code Playgroud)

但是,保存到上述位置的文件是 plist 文件。.trace(即instrumentscli14.trace)文件会自动保存到我保存脚本的文件夹中。

有谁知道有没有办法将 .trace 文件保存到自定义位置?

谢谢!

instruments xcode-instruments

4
推荐指数
1
解决办法
621
查看次数

泄漏仪器中的减号是什么意思?

我正在使用Xcode的Instruments来查看我的应用程序中是否有任何泄漏.但我发现图表有点令人困惑.该应用程序在完成某项工作时会得到一个交叉,但之后它只会得到减号.

在此输入图像描述

引用计数最终似乎为零.我对阅读不太确定.

在此输入图像描述

官方文档有点过时.

xcode xcode-instruments xcode7

4
推荐指数
1
解决办法
655
查看次数

实际/驻留内存大于 XCode Instruments 报告的分配

我有点迷失了。我正在编写一个小应用程序,它在第一步中加载一堆数据并将它们放入数据库中。

对于数据库中的每个条目,我创建一个新对象,希望它能从弧中释放:-)。

仪器工具显示我的应用程序实际上有 5-6 MB 的生活分配。但活动监视器显示我实际上使用了 100 mb 的“物理”(真实)内存?

如何减少 100 MB?您看到的内存泄漏只有 100 kb,这不是原因!?

Instruments 显示 5.67Mb 'Live'

仪器

活动监视器显示 98Mb 实际内存

活动监视器

macos cocoa memory-management xcode-instruments

3
推荐指数
1
解决办法
1145
查看次数

Xcode仪器

我正在尝试剖析我的应用程序,并想检查内存泄漏。Iam计划使用Xcode工具。任何人都建议从Xcode Instruments开始的好教程。请提出其他选择。

xcode memory-management ios xcode-instruments

3
推荐指数
1
解决办法
1383
查看次数

在Xcode工具中“附加之前分配”是什么意思?

我是Xcode和性能分析工具(仪器)的新手。我试图找到我的C程序的泄漏。一切顺利。它没有显示泄漏,但是我不理解程序中使用的一些术语。是否意味着我在程序的其他地方仍然存在内存泄漏?

xcode memory-leaks xcode-instruments

3
推荐指数
1
解决办法
1583
查看次数

iOS 内存泄漏,内存图调试器未显示泄漏,但同时 Xcode-Instruments-leaks 显示泄漏

在此处输入图片说明在我的项目中当我开始在内存图调试器中寻找泄漏时,我发现很少并修复了它们,现在使用内存图没有发现泄漏。Instruments->leaks 的问题,有时显示泄漏,有时不显示,泄漏立即从照片中描述的开始出现,我几乎不明白导致泄漏的原因。如果内存图显示没有泄漏,我可以相信吗?或者存在一种内存图未捕获的泄漏。代码如何初始化 mainViewController:

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow()
    
    let controller = MainViewController()
    let navigationController = UINavigationController(rootViewController: controller)
    let rootViewController = navigationController
    self.window?.rootViewController = rootViewController
    self.window?.makeKeyAndVisible()
           
    return true
        
}
Run Code Online (Sandbox Code Playgroud)

memory-leaks ios xcode-instruments swift memory-graph-debugger

3
推荐指数
1
解决办法
643
查看次数

如何以编程方式启动/停止仪器(时间分析器)?

有没有办法以编程方式启动/停止仪器分析?我只需要以可靠的方式分析我的 OS X 代码的特定部分,但我似乎无法找到任何有关 Instruments 的文档,这些文档可能会告诉我如何做到这一点。对于 CHUD/Shark,有一个编程 API 和一个命令行工具来支持这一点,但我在任何地方都看不到 Instruments 的等效项?FWIW 我发现 2009 年左右的一些旧论坛帖子哀叹该领域缺乏 Instruments 功能,但最近没有。

macos xcode profiling instruments xcode-instruments

2
推荐指数
1
解决办法
1085
查看次数

如何在方法中使用__weak来防止iOS中的内存泄漏

我一直在尝试在iOS应用程序中进行一些模拟计算,但是我的手机会随着时间的推移而内存不足,它只是不会停止添加内存使用量,虽然我知道这种情况发生在哪里(用仪器钉它)我仍然不喜欢不知道我需要改变什么来阻止内存泄漏.

这是内存分配发生的方法,我知道我在这里添加新数据,但我认为ARC将释放所有我不能再引用的分配数据?

int round = 0;

InstanceInSimulation *simulatingChosen = [[InstanceInSimulation alloc] initWithSimulationInstance:_chosenInstance];
InstanceInSimulation *simulatingOpponent = [[InstanceInSimulation alloc] initWithSimulationInstance:_opponentInstance];

while (round < _maxRounds) {

    // first choose action
    NSManagedObject *chosensAction = [simulatingChosen nextActionAgainstOpponent:simulatingOpponent];
    NSManagedObject *opponentsAction = [simulatingOpponent nextActionAgainstOpponent:simulatingChosen];

    // second calculate which action first
    InstanceInSimulation *attackingFirst;
    InstanceInSimulation *defendingFirst;
    NSManagedObject *attackingFirstsAction;
    NSManagedObject *defendingFirstsAction;

    if (simulatingChosen.instance.speed > simulatingOpponent.instance.speed) {
        attackingFirst = simulatingChosen;
        defendingFirst = simulatingOpponent;
        attackingFirstsAction = chosensAction;
        defendingFirstsAction = opponentsAction;
    } else {
        attackingFirst = simulatingOpponent;
        defendingFirst = simulatingChosen;
        attackingFirstsAction = opponentsAction; …
Run Code Online (Sandbox Code Playgroud)

memory-leaks objective-c ios xcode-instruments automatic-ref-counting

2
推荐指数
1
解决办法
166
查看次数

如何使用JavaScript访问UIAutomation中的actionSheet(和它的按钮)?

我有一个非常简单的应用程序,其中包括一个TableViewController,它显示一个包含图像,标签和按钮的自定义单元格的表格,当您点击按钮时,将显示actionSheet.所以,在我的自定义java脚本中(使用Instruments-UIAutomation)我想在我的表中按下按钮(我可以毫无问题地执行此操作),然后当actionSheet出现时我只想点击唯一的按钮(取消按钮)它表明.

我不知道如何正确地做到这一点.所以这是我的js代码:

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();

main.tableViews()[0].cells()[1].buttons()["DetailsButton"].tap();
target.delay(5);
main.actionSheet().elements()[0].tap();
Run Code Online (Sandbox Code Playgroud)

这就是我得到的信息:

Script threw an uncaught JavaScript error: 'undefined' is not a function (evaluating 'main.actionSheet()') on line 9 of New%20Script
Run Code Online (Sandbox Code Playgroud)

我也试过actionSheet().buttons()[0].tap();- 没有帮助,继续得到同样的错误.

我甚至尝试通过它的accessibleLabel访问actionSheet:

main.actionSheet()["CellNumberSheet"].elements()[0].tap();
Run Code Online (Sandbox Code Playgroud)

如果它会有所帮助,那就是我显示我的actionSheet的方式:

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
Run Code Online (Sandbox Code Playgroud)

元素层次结构似乎也是正确的.

在此输入图像描述

没有在网上找到太多有用的信息...所以任何帮助将不胜感激...

javascript uiactionsheet ios xcode-instruments ios-ui-automation

2
推荐指数
1
解决办法
2675
查看次数

ARC是否会自动释放Core Foundation对象,还是需要手动进行内存管理?

在我的代码中,我正在创建一个Core Foundation对象,从Apple文档中我知道

“ Core Foundation对象的寿命由其引用计数决定” https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Articles/lifecycle.html

因此,我非常怀疑核心基础对象是由ARC发布还是我们需要通过编写CFRelease(myobject)进行发布

我正在使用Xcode 6.4,目前在我的代码中没有使用任何CFRelease(myobject)释放我的Core Foundation对象,但是我仍然找不到在xcode工具中的任何内存泄漏(泄漏)

因此,我的问题是ARC是否将负责发布Core Foundation对象。

当我刚遇到一个类似的声明时,

回想一下,ARC仅处理Objective-C对象。它不管理非Objective-C对象的CoreFoundation对象的保留和释放。http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode

因此,如果有人遇到相同的问题并找到一种解决方案,请与我们分享...

提前致谢..

memory-leaks memory-management core-foundation xcode-instruments automatic-ref-counting

2
推荐指数
1
解决办法
1636
查看次数

如何从 xcode 仪器时间分析器获取挂钟时间?

我试图在我的 iOS 应用程序中分析一个场景,能够看到每个函数花费的 CPU 周期。但是,我想检查函数花费的挂钟时间,因为由于资源争用,我期待一些等待时间。

xcode ios xcode-instruments

2
推荐指数
1
解决办法
345
查看次数

如何修复自动释放对象的内存泄漏

我有这个泄漏〜6KB的方法:

+ (EInspectorFacilityInfo*) newWithNode: (CXMLNode*) node
{
  if(node == nil) { return nil; }
  return (EInspectorFacilityInfo*)[[[EInspectorFacilityInfo alloc] initWithNode: node] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

这是一个屏幕截图,指示仪器中的内存泄漏. 在此输入图像描述

我怎样才能摆脱这种内存泄漏?

iphone memory-leaks objective-c ios xcode-instruments

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

UIImageView不释放内存(根据VM Tracker) - 低内存警告和终止

我真的很难在我的应用程序中耗尽内存.这是我正在执行的基本操作,如下所述.请注意,每当用户使用相机拍摄照片时,我会保存两个不同版本的照片 - 一个是预览(用于快速加载),另一个是高质量的缩放和稍后标记.

这是我的操作顺序列表:

  1. 在应用程序启动时,显示已在应用程序中拍摄的图像的缩略图(显然,在应用程序首次启动时,此列表为空).
  2. 触摸相机按钮即可启动 UIImagePickerController
  3. 用户拍摄照片并保存(再次保存预览并保存完整比例照片)
  4. 缩略图列表将刷新并显示新的预览图像.同样,VM Tracker仪器中"Image IO"的整体尺寸仍然非常小(可能增加0.5MB顶部).
  5. 用户触摸其中一个预览图像,启动不同的视图控制器,执行以下操作:
    • 创建新的UIImageView,加载图像,作为子视图添加到View Controllers视图
    • 突然,"Image IO"跳了30MB.

这不是什么大问题,但是当我回去(导航控制器弹出)时,"Image IO"类型和"Dirty"类型的大小都没有减小.就像UIImageView没有被破坏一样.每次我按下这个视图控制器并加载一个图像,大小增加30MB,弹出永远不会减少它.

我正在使用ARC,所以我不会自己调用release,但是当我弹出视图控制器时,我希望它会被破坏.

仅供参考,我用于保存预览的设置和完整图像是:

预习: [UIImageJPEGRepresentation([UIImage imageWithImage:image scaledToSize:CGSizeMake(300, 400)], 0.4f) writeToFile:previewPath atomically:NO];

充分: [UIImageJPEGRepresentation(image , 0.8f) writeToFile:imagePath atomically:NO];

我主要担心的是(1)在弹出包含视图控制器之后弄清楚如何摆脱UIImage使用的内存,但我也想知道(2)为什么加载时图像为30MB.

out-of-memory uiimageview ios xcode-instruments

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