2016-01-20 21 views
12

Tôi tò mò về thời điểm showsFields được bật, mức sử dụng bộ nhớ tăng cực nhanh? Nó có thể tăng trưởng lên đến 500MB dưới 30 giây. Nếu mac của tôi chỉ có 8GB RAM, tôi có thể có ít hơn 8 phút để gỡ lỗi trước khi cảnh báo bộ nhớ, nó sẽ là tồi tệ nhất khi gỡ lỗi trên thiết bị thực.SpriteKit SKView cho thấySử dụng bộ nhớ sử dụng

Ảnh chụp màn hình dưới đây được kiểm tra từ thiết bị thực (iOS 9.2).

Memory Usage

Bạn có thể nhanh chóng thử nó bằng cách tạo ra một dự án SpriteKit và biến showsFields trên trong viewDidLoad() phương pháp bên trong bộ điều khiển xem.

skView.showsFields = true

Nếu bạn muốn xem những gì showsFields làm, đặt đoạn mã này trong phương pháp của cảnh -didMoveToView(view:).

override func didMoveToView(view: SKView) { 
    let myField = SKFieldNode.springField() 
    myField.position = CGPointMake(frame.midX, frame.midY) 
    myField.strength = 1.0 
    self.addChild(myField) 
} 

Đây là showsFields thảo luận từ Apple

Thảo luận

Khi tùy chọn gỡ lỗi này được kích hoạt, mỗi lần một khung được trả lại, một hình ảnh được vẽ đằng sau cảnh của bạn cho thấy những ảnh hưởng của bất kỳ trường vật lý nào có trong khung cảnh.

+2

Bạn đã thử trên một thiết bị thực? SpriteKit trên giả lập là khá lỗi và không hiệu quả. – jcaron

+1

yup, cảnh báo bộ nhớ buộc ứng dụng phải thoát –

+0

Đó là lỗi. Mong đợi nó sẽ được cố định vào năm 2017. hoặc 2018. Nhưng không phải ngày mai. – Confused

Trả lời

1

Dường như hình ảnh gỡ lỗi được vẽ trên mỗi khung không được xóa hoàn toàn, có thể dẫn đến rò rỉ bộ nhớ này.

Sẽ gửi báo cáo lỗi với Apple qua https://developer.apple.com/bug-reporting/ để họ biết nhiều người đang gặp sự cố này và hy vọng có thể ưu tiên cao hơn.

Hy vọng điều đó sẽ hữu ích.

Trân trọng, Mukund

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