(仅 XCode 7 + iOS 9 + iPhone 4s/iPhone5)问题:"malloc: *** mach_vm_map(size=1048576) failed (error code=3)"
(XCode 7 + iOS 9 + iPhone 4s/iPhone5 only) issue: "malloc: *** mach_vm_map(size=1048576) failed (error code=3)"
我知道这个问题与内存分配有关,但我只在 iOS 9、XCode 7 中得到它。在 XCode 6.4、iOS 8.4 中,它工作得非常完美,在任何方面都没有问题。在 iOS 9、XCode 7 中,它经常崩溃并给出此错误。
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug
有什么建议吗?我正在处理内存问题,但我想知道是否存在太多内存问题,那么为什么它在 iOS 8.4 中工作而不在 iOS 9 中工作?
此外,我的 UI 全部都变白了!就像导航栏没有标题一样,自定义标签栏(RDVTabBar)是不可见的,但是,其他视图控制器在那里(它响应触摸事件,你可以点击该区域,位于该区域的按钮起作用!)。
P.S。我从来没有收到内存警告,applicationWillTerminate:
方法都没有被调用!
更新:我发现这个问题只出现在iPhone 5和4s! (非 64 位设备!)
更新 2:当崩溃发生时,我尝试打印 object 之一并打印它,我在调试模式下再次遇到相同的错误:
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug
.
----------------更新----------------
好吧,我在这里发现了一些东西:我在 Instruments 中检查了我的应用程序,发现它在 iOS 8.4 中占用了大约 200mb 的内存,令人惊讶的是 iOS 9.* 占用了 1.5 GB 的内存记忆!!!这是我不明白的事!一个应用程序在 iOS 8.4 中占用 200 MB 的内存,而同一个应用程序在 iOS 9 中占用超过 1.5GB 的内存!一点都看不懂!有什么想法吗?
我刚刚遇到了和你一样的问题(xcode7,iPad 2,iOS 8.4)。
<Error>: myApp(524,0x3cfda9dc) malloc: *** mach_vm_map(size=4060311552) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
所以,我决定运行调试模式,应用程序在最意想不到的地方崩溃:
[self.delegate discountPopupDoneClickWithDiscount:self.discount
type:self.discountType
federalTaxEnable:self.federalTaxEnable
federalTax:self.federalTax
customTax:self.customTax];
然后我试图找出这里发生了什么,输入po self.discount
,结果是self.discount
(这是一个属性和NSDecimalNumber
类型)return一个非常不正常的值,例如 <å: 0xba123adr>
。 St运行ge,对吧?此外,当我尝试 po [self discount]
时,它会产生 NSDecimalNumber [_NSKeyedCoderOldStyleArray initialize]: Unrecognized selector send to instance.
几乎不知道该做什么。
解法:
我从这里更新折扣属性:
@property (nonatomic, assign) NSDecimalNumber *discount;
对此:
@property (nonatomic, strong) NSDecimalNumber *discount;
然后一切都很好。当然,这不是您问题的确切 answer/solution,但这可能 help/give 您以某种方式知道该怎么做。
好吧,我想我终于找到了问题所在:它肯定是内存问题,但我必须搜索哪里。我发现我使用了两个第三方标签,即:CXAHyperlinkLabel 和 STTweetLabel。当我删除它们时,我的应用程序运行正常!这个问题已经解决了,但我仍然很困惑为什么它在 iOS 8.4 中工作(并且仍然有效)并且在 iOS 9.0 及更高版本中占用超过 1.5 GB 的内存!如果它有一些内存问题(我发现了一些并已经修复,仍然),为什么它确实与 iOS 8.* 一起工作。
因此,我对遇到此类问题的任何人的建议是,我建议使用 UITextView 作为链接(我做到了,而且它是很好的替代品)。
真奇怪。我有一个非常相似的问题,应用程序会不断增加内存消耗,直到最终崩溃,但仅限于 iOS7 和 iOS8。果然,iOS9 及以上没有问题。
发现原因是对大量 collectionViewCells 的简单设置 [UILabel setText:text]
。什么鬼?他们很弱,非原子的。为什么?
运行 Instruments : Allocations 中的应用程序。在 Instruments 最终崩溃之前,我能够将内存消耗隔离到 __NSStringDrawingEngine
、+[NSParagraphStyle _defaultWritingDirection]
[UIFont fontWithName]
或类似性质的东西。
无论如何,问题出在我使用的是文本样式类型(例如,标题 1、标题 2、Body、标题等)。当时使用起来似乎合乎逻辑。但是,我将它们切换为系统字体,不再有内存问题,也不再冻结。
真奇怪。
你是否使用了NSZombieObject enable,它不会释放僵尸对象,可能会导致这个crash.i希望它能帮助你
我知道这个问题与内存分配有关,但我只在 iOS 9、XCode 7 中得到它。在 XCode 6.4、iOS 8.4 中,它工作得非常完美,在任何方面都没有问题。在 iOS 9、XCode 7 中,它经常崩溃并给出此错误。
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug
有什么建议吗?我正在处理内存问题,但我想知道是否存在太多内存问题,那么为什么它在 iOS 8.4 中工作而不在 iOS 9 中工作?
此外,我的 UI 全部都变白了!就像导航栏没有标题一样,自定义标签栏(RDVTabBar)是不可见的,但是,其他视图控制器在那里(它响应触摸事件,你可以点击该区域,位于该区域的按钮起作用!)。
P.S。我从来没有收到内存警告,applicationWillTerminate:
方法都没有被调用!
更新:我发现这个问题只出现在iPhone 5和4s! (非 64 位设备!)
更新 2:当崩溃发生时,我尝试打印 object 之一并打印它,我在调试模式下再次遇到相同的错误:
malloc: *** mach_vm_map(size=1048576) failed (error code=3)
*** error: can't allocate region securely
*** set a breakpoint in malloc_error_break to debug
.
----------------更新----------------
好吧,我在这里发现了一些东西:我在 Instruments 中检查了我的应用程序,发现它在 iOS 8.4 中占用了大约 200mb 的内存,令人惊讶的是 iOS 9.* 占用了 1.5 GB 的内存记忆!!!这是我不明白的事!一个应用程序在 iOS 8.4 中占用 200 MB 的内存,而同一个应用程序在 iOS 9 中占用超过 1.5GB 的内存!一点都看不懂!有什么想法吗?
我刚刚遇到了和你一样的问题(xcode7,iPad 2,iOS 8.4)。
<Error>: myApp(524,0x3cfda9dc) malloc: *** mach_vm_map(size=4060311552) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
所以,我决定运行调试模式,应用程序在最意想不到的地方崩溃:
[self.delegate discountPopupDoneClickWithDiscount:self.discount
type:self.discountType
federalTaxEnable:self.federalTaxEnable
federalTax:self.federalTax
customTax:self.customTax];
然后我试图找出这里发生了什么,输入po self.discount
,结果是self.discount
(这是一个属性和NSDecimalNumber
类型)return一个非常不正常的值,例如 <å: 0xba123adr>
。 St运行ge,对吧?此外,当我尝试 po [self discount]
时,它会产生 NSDecimalNumber [_NSKeyedCoderOldStyleArray initialize]: Unrecognized selector send to instance.
几乎不知道该做什么。
解法:
我从这里更新折扣属性:
@property (nonatomic, assign) NSDecimalNumber *discount;
对此:
@property (nonatomic, strong) NSDecimalNumber *discount;
然后一切都很好。当然,这不是您问题的确切 answer/solution,但这可能 help/give 您以某种方式知道该怎么做。
好吧,我想我终于找到了问题所在:它肯定是内存问题,但我必须搜索哪里。我发现我使用了两个第三方标签,即:CXAHyperlinkLabel 和 STTweetLabel。当我删除它们时,我的应用程序运行正常!这个问题已经解决了,但我仍然很困惑为什么它在 iOS 8.4 中工作(并且仍然有效)并且在 iOS 9.0 及更高版本中占用超过 1.5 GB 的内存!如果它有一些内存问题(我发现了一些并已经修复,仍然),为什么它确实与 iOS 8.* 一起工作。 因此,我对遇到此类问题的任何人的建议是,我建议使用 UITextView 作为链接(我做到了,而且它是很好的替代品)。
真奇怪。我有一个非常相似的问题,应用程序会不断增加内存消耗,直到最终崩溃,但仅限于 iOS7 和 iOS8。果然,iOS9 及以上没有问题。
发现原因是对大量 collectionViewCells 的简单设置 [UILabel setText:text]
。什么鬼?他们很弱,非原子的。为什么?
运行 Instruments : Allocations 中的应用程序。在 Instruments 最终崩溃之前,我能够将内存消耗隔离到 __NSStringDrawingEngine
、+[NSParagraphStyle _defaultWritingDirection]
[UIFont fontWithName]
或类似性质的东西。
无论如何,问题出在我使用的是文本样式类型(例如,标题 1、标题 2、Body、标题等)。当时使用起来似乎合乎逻辑。但是,我将它们切换为系统字体,不再有内存问题,也不再冻结。
真奇怪。
你是否使用了NSZombieObject enable,它不会释放僵尸对象,可能会导致这个crash.i希望它能帮助你