2016-01-20 8 views
12

मुझे उत्सुकता है कि showsFields चालू है, तो स्मृति उपयोग बहुत तेजी से बढ़ता है? यह 30 सेकंड के तहत 500 एमबी तक बढ़ सकता है। अगर मेरे मैक में केवल 8 जीबी रैम है, तो शायद मेमोरी चेतावनी से पहले डीबग करने के लिए मेरे पास 8 मिनट से भी कम समय है, वास्तविक उपकरण पर डीबग होने पर यह सबसे खराब होगा।स्प्राइटकिट SKView शो फ़ील्ड मेमोरी उपयोग

नीचे स्क्रीनशॉट एक वास्तविक डिवाइस (आईओएस 9.2) से परीक्षण किया जाता है।

Memory Usage

आप जल्दी से यह एक SpriteKit परियोजना बनाकर कोशिश करते हैं और दृश्य नियंत्रक के अंदर viewDidLoad() विधि में पर showsFields बदल सकते हैं।

skView.showsFields = true

आप को देखने के लिए क्या showsFields करता चाहते हैं, दृश्य की -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) 
} 

यहाँ एप्पल

से showsFields चर्चा

चर्चा

जब यह डिबगिंग विकल्प सक्षम किया गया है, हर बार एक फ्रेम प्रदान की गई है, एक छवि अपने दृश्य के पीछे तैयार की है कि के प्रभाव से पता चलता है दृश्य में निहित कोई भी भौतिकी क्षेत्र।

+2

आप एक असली डिवाइस पर की कोशिश की? सिम्युलेटर पर SpriteKit काफी छोटी और अक्षम है। – jcaron

+1

yup, स्मृति चेतावनी बल को छोड़ने के लिए –

+0

यह एक बग है। उम्मीद है कि इसे 2017 में तय किया जाए या 2018. लेकिन कल नहीं। – Confused

उत्तर

1

ऐसा लगता है कि प्रति फ्रेम तैयार डीबग छवि ठीक से साफ़ नहीं की जा रही है, जो शायद इस स्मृति रिसाव की ओर अग्रसर है।

https://developer.apple.com/bug-reporting/ के माध्यम से ऐप्पल के साथ एक बग रिपोर्ट दर्ज करने के लिए सर्वश्रेष्ठ इच्छा है ताकि वे जान सकें कि एकाधिक लोगों को यह समस्या है और उम्मीद है कि वे उच्च प्राथमिकता दे सकते हैं।

उम्मीद है कि मदद करता है।

सधन्यवाद, मुकुंद

संबंधित मुद्दे