में बड़ी मात्रा में वर्चुअल मेमोरी (बेनामी वीएम) का उपयोग करके UILabel (CALayer)
देखता है। मैं लगभग UILabel
प्रति वर्चुअल मेमोरी के बारे में 235 KB देखता हूं।उइलाबेल (कैलायर) वर्चुअल मेमोरी
मुझे लगता है कि यह शायद आईओएस 7.1 या 7.1.1 के साथ एक नया मुद्दा है।
क्या यह उम्मीद है?
मैंने एक साधारण प्रोग्राम बनाया जो 500 UILabels
और Instruments
बनाता है जो स्मृति के 115 एमबी दिखाता है। लगभग 1500 लेबल पर एप्लिकेशन ओएस द्वारा समाप्त कर दिया जाता है।
for (int i = 0; i < 500; i++)
{
index = (int)[self.items count];
index++;
frame = CGRectMake(10.0, 20, 300.0, 50.0);
UILabel *newLabel = [[UILabel alloc] initWithFrame:frame];
newLabel.text = [NSString stringWithFormat:@"This is text for label: %d", index];
newLabel.backgroundColor = [UIColor whiteColor];
[self.view addSubview:newLabel];
[self.items setObject:newLabel forKey:[NSNumber numberWithInteger:index]];
}
विचार?
हालांकि, एप्पल आपको बता सकता है कि अपने अधिकार में कोई नहीं दिमाग 500 लेबल का उपयोग करेगा। आखिरकार, यही कारण है कि टेबल अपनी कोशिकाओं का पुन: उपयोग करते हैं; आपके पास 1000 पंक्ति तालिका हो सकती है लेकिन इसमें केवल 12 वास्तविक कक्ष होते हैं (इसलिए, प्रति पंक्ति एक लेबल होने पर केवल 12 वास्तविक लेबल)। – matt
मुझे नहीं लगता कि यह जवाब सटीक है। मैं कल्पना नहीं कर सकता कि विचार बिटमैप्स द्वारा समर्थित हैं। शायद लेबल हैं, लेकिन अगर मैं हर दृश्य होगा तो मुझे आश्चर्य होगा। आपके पास इसके लिए कोई लिंक है? – kritzikratzi
@ kritzikratzi मैंने नहीं कहा कि विचार बिटमैप्स द्वारा समर्थित हैं। मैंने कहा कि मेरा पहला जवाब यह कहना था कि वे हैं। यह काम करता है कि यह काम विभिन्न डब्ल्यूडब्ल्यूडीसी वीडियो से आता है जहां ऐप्पल वास्तव में बिटमैप के बारे में बात करता है। – matt