我正在从命令行运行仪器。在我的命令中,我确实使用指定了输出路径
-e UIARESULTSPATH /user/xxxx
Run Code Online (Sandbox Code Playgroud)
但是,保存到上述位置的文件是 plist 文件。.trace(即instrumentscli14.trace)文件会自动保存到我保存脚本的文件夹中。
有谁知道有没有办法将 .trace 文件保存到自定义位置?
谢谢!
我正在使用Xcode的Instruments来查看我的应用程序中是否有任何泄漏.但我发现图表有点令人困惑.该应用程序在完成某项工作时会得到一个交叉,但之后它只会得到减号.
引用计数最终似乎为零.我对阅读不太确定.
该官方文档有点过时.
我有点迷失了。我正在编写一个小应用程序,它在第一步中加载一堆数据并将它们放入数据库中。
对于数据库中的每个条目,我创建一个新对象,希望它能从弧中释放:-)。
仪器工具显示我的应用程序实际上有 5-6 MB 的生活分配。但活动监视器显示我实际上使用了 100 mb 的“物理”(真实)内存?
如何减少 100 MB?您看到的内存泄漏只有 100 kb,这不是原因!?


我正在尝试剖析我的应用程序,并想检查内存泄漏。Iam计划使用Xcode工具。任何人都建议从Xcode Instruments开始的好教程。请提出其他选择。
我是Xcode和性能分析工具(仪器)的新手。我试图找到我的C程序的泄漏。一切顺利。它没有显示泄漏,但是我不理解程序中使用的一些术语。是否意味着我在程序的其他地方仍然存在内存泄漏?
在我的项目中当我开始在内存图调试器中寻找泄漏时,我发现很少并修复了它们,现在使用内存图没有发现泄漏。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
有没有办法以编程方式启动/停止仪器分析?我只需要以可靠的方式分析我的 OS X 代码的特定部分,但我似乎无法找到任何有关 Instruments 的文档,这些文档可能会告诉我如何做到这一点。对于 CHUD/Shark,有一个编程 API 和一个命令行工具来支持这一点,但我在任何地方都看不到 Instruments 的等效项?FWIW 我发现 2009 年左右的一些旧论坛帖子哀叹该领域缺乏 Instruments 功能,但最近没有。
我一直在尝试在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
我有一个非常简单的应用程序,其中包括一个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
在我的代码中,我正在创建一个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
我试图在我的 iOS 应用程序中分析一个场景,能够看到每个函数花费的 CPU 周期。但是,我想检查函数花费的挂钟时间,因为由于资源争用,我期待一些等待时间。
我有这个泄漏〜6KB的方法:
+ (EInspectorFacilityInfo*) newWithNode: (CXMLNode*) node
{
if(node == nil) { return nil; }
return (EInspectorFacilityInfo*)[[[EInspectorFacilityInfo alloc] initWithNode: node] autorelease];
}
Run Code Online (Sandbox Code Playgroud)
这是一个屏幕截图,指示仪器中的内存泄漏.

我怎样才能摆脱这种内存泄漏?
我真的很难在我的应用程序中耗尽内存.这是我正在执行的基本操作,如下所述.请注意,每当用户使用相机拍摄照片时,我会保存两个不同版本的照片 - 一个是预览(用于快速加载),另一个是高质量的缩放和稍后标记.
这是我的操作顺序列表:
UIImagePickerController这不是什么大问题,但是当我回去(导航控制器弹出)时,"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.
ios ×7
memory-leaks ×5
xcode ×5
instruments ×2
macos ×2
objective-c ×2
cocoa ×1
iphone ×1
javascript ×1
profiling ×1
swift ×1
uiimageview ×1
xcode7 ×1