2015-09-24 25 views
13

Tôi biết vấn đề có liên quan đến phân bổ bộ nhớ, nhưng tôi nhận được nó trong chỉ iOS 9, XCode 7. Trong XCode 6.4, iOS 8.4, nó hoạt động hoàn hảo, không có vấn đề gì cả. Trong iOS 9, XCode 7, nó chỉ bị treo rất thường xuyên cho lỗi này.(XCode 7 + iOS 9 + iPhone 4s/iPhone5 chỉ) vấn đề: "malloc: *** mach_vm_map (kích thước = 1048576) không thành công (mã lỗi = 3)"

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

Mọi đề xuất? Tôi đang làm việc trên các vấn đề bộ nhớ, nhưng tôi tự hỏi nếu có quá nhiều vấn đề bộ nhớ, thì tại sao nó hoạt động trong iOS 8.4 chứ không phải trong iOS 9?

Ngoài ra, tôi nhận được tất cả giao diện người dùng của mình được whited out! Giống như thanh điều hướng không có tiêu đề, thanh tab tùy chỉnh (RDVTabBar) không hiển thị, tuy nhiên, có một bộ điều khiển xem khác (nó phản hồi các sự kiện cảm ứng, bạn có thể chạm vào vùng đó và nút được đặt trong khu vực đó hoạt động!).

P.S. Tôi không nhận được cảnh báo bộ nhớ, phương thức applicationWillTerminate: đang được gọi!

Cập nhật: Tôi phát hiện thấy sự cố này chỉ xảy ra trong iPhone 5 và 4s! (Thiết bị không phải 64bit!)

Cập nhật 2: Khi sự cố xảy ra, tôi cố in một đối tượng và in nó, tôi lại gặp lỗi tương tự trong chế độ gỡ lỗi: 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.

------------------ Cập nhật ------------------

Vâng, tôi đã tìm thấy thứ gì đó ở đây: Tôi đã kiểm tra ứng dụng của mình trong Thiết bị và phát hiện rằng nó chiếm khoảng 200MB bộ nhớ trong iOS 8.4 và đáng ngạc nhiên là iOS 9. * chiếm 1,5 GB bộ nhớ !!! Đây là điều tôi không hiểu! Một ứng dụng mất 200 mb bộ nhớ trong iOS 8.4 và cùng một ứng dụng chiếm hơn 1.5 GB bộ nhớ trên iOS 9! Không hiểu gì cả! Bất kỳ ý tưởng?

+0

Hãy hiển thị stacktrace. – trojanfoe

+0

Điều kỳ lạ là tôi không nhận được bất kỳ stacktrace hầu hết thời gian. Chỉ cần ít ba dòng và ứng dụng đã biến mất! –

+0

Làm như lỗi đề xuất và đặt điểm ngắt trong 'malloc_error_break' và in dấu vết ngăn xếp từ đó. – casey

Trả lời

3

Vâng, tôi đoán cuối cùng tôi đã tìm thấy vấn đề: Vấn đề bộ nhớ chắc chắn của nó, nhưng tôi phải tìm kiếm ở đâu.Tôi thấy rằng tôi đang sử dụng hai nhãn của bên thứ ba là: CXAHyperlinkLabelSTTweetLabel. Khi tôi gỡ bỏ chúng, ứng dụng của tôi chỉ hoạt động tốt !! Vấn đề đã được giải quyết nhưng tôi vẫn còn bối rối tại sao nó đã làm việc (và vẫn hoạt động) tuyệt vời trong iOS 8.4 và ăn lên hơn 1.5 GB bộ nhớ trong iOS 9.0 trở lên !! Nếu nó có một số vấn đề với bộ nhớ (tôi tìm thấy một số và cố định đã được, vẫn còn), tại sao nó đã làm việc với iOS 8. *. Vì vậy, lời khuyên của tôi cho bất kỳ người nào có vấn đề như vậy, tôi khuyên bạn nên sử dụng UITextView cho các liên kết (tôi đã làm nó và thay thế tốt đẹp của nó).

+0

Tôi đang sử dụng chế độ xem văn bản cho liên kết nhưng vấn đề này vẫn xảy ra với bất kỳ giải pháp nào khác không? –

2

Tôi vừa mới gặp phải sự cố chính xác như bạn (xcode7, trên 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 

Vì vậy, tôi quyết định chạy trên chế độ gỡ lỗi, và sự sụp đổ của ứng dụng ở nơi bất ngờ nhất:

 [self.delegate discountPopupDoneClickWithDiscount:self.discount 
                type:self.discountType 
             federalTaxEnable:self.federalTaxEnable 
               federalTax:self.federalTax 
               customTax:self.customTax]; 

Sau đó, tôi đã cố gắng để tìm hiểu những gì xảy ra ở đây, loại po self.discount, rẽ ra self.discount (đó là tài sản có loại NSDecimalNumber) trả về một giá trị rất khó, như <å: 0xba123adr>. Lạ thật, phải không? Ngoài ra, khi tôi thử po [self discount], nó mang lại NSDecimalNumber [_NSKeyedCoderOldStyleArray initialize]: Unrecognized selector send to instance. Khá nhiều điều không biết phải làm gì ở đây.

Giải pháp:

tôi cập nhật các tài sản giảm từ này:

@property (nonatomic, assign) NSDecimalNumber *discount; 

này:

@property (nonatomic, strong) NSDecimalNumber *discount; 

Và sau đó tốt mọi thứ đều. Tất nhiên đây không phải là một câu trả lời chính xác/giải pháp cho câu hỏi của bạn, nhưng điều này có thể giúp/cung cấp cho bạn một đầu mối về những gì để làm, bằng cách nào đó.

+0

Xin cảm ơn, nhưng điều này không đúng trong ứng dụng của tôi. –

+0

Bạn nên chạy ứng dụng của mình trong trình mô phỏng, cố gắng tái tạo sự cố. Sau đó, thiết lập gỡ lỗi tại nơi nó sụp đổ và kiểm tra càng nhiều càng tốt. – Eddie

1

Rất lạ. Tôi đã có một vấn đề rất giống nhau, nơi mà các ứng dụng sẽ liên tục tăng tiêu thụ bộ nhớ cho đến khi cuối cùng nó sẽ sụp đổ, nhưng CHỈ trên iOS7 và iOS8. Chắc chắn, không có vấn đề với iOS9 trở lên.

Phát hiện ra rằng một cài đặt đơn giản là [UILabel setText:text] cho A LOT của collectionViewCells là nguyên nhân. WTF? Họ yếu đuối, nonatomic. Tại sao?

Chạy ứng dụng trong Công cụ: Phân bổ. Trước khi các Thiết bị cuối cùng bị rơi, tôi đã có thể cô lập mức tiêu thụ bộ nhớ thành __NSStringDrawingEngine, +[NSParagraphStyle _defaultWritingDirection][UIFont fontWithName] hoặc một cái gì đó với bản chất đó.

Dù sao, hóa ra vấn đề là tôi đang sử dụng các kiểu Kiểu văn bản (Ví dụ, Tiêu đề 1, Tiêu đề 2, Nội dung, Chú thích, v.v.). Dường như được sử dụng hợp lý vào thời điểm đó. Tuy nhiên, tôi đã chuyển sang các phông chữ Hệ thống, và không còn vấn đề bộ nhớ nữa và không bị đóng băng nữa.

Rất lạ.

-1

bạn đã sử dụng tính năng NSZombieObject, nó sẽ không giải phóng đối tượng zombie và có thể gây ra sự cố này.i hy vọng nó sẽ giúp bạn

Các vấn đề liên quan