OSMemoryNotifications.h থেকে ,
/*
** Threshold values for notifications
*/
typedef enum {
OSMemoryNotificationLevelAny = -1,
OSMemoryNotificationLevelNormal = 0,
OSMemoryNotificationLevelWarning = 1,
OSMemoryNotificationLevelUrgent = 2,
OSMemoryNotificationLevelCritical = 3
} OSMemoryNotificationLevel;
টোটোয়াল 5 স্তরের মেমরি সতর্কতা (-1,3)।
মেমোরি স্তরের সতর্কতার বিবরণ সম্পর্কিত, @ কেনেনিটিএম এর উত্তরটি দুর্দান্ত।
আমি বেশ কয়েকটি সম্পর্কিত পয়েন্ট যুক্ত করতে চাই যা প্রধানমন্ত্রী এবং অন্যদের সহায়তা করতে পারে।
মেমোরি স্তর সতর্কতা থাকা অবস্থায় আপনার কী করা উচিত?
এর মধ্যে যে কোনও সতর্কতা পাওয়ার পরে, আপনার হ্যান্ডলার পদ্ধতিটি অবিলম্বে কোনও অনিবদ্ধ স্মৃতি মুক্ত করে সাড়া দেওয়া উচিত। উদাহরণস্বরূপ, ইউআইভিউউকন্ট্রোলার শ্রেণীর ডিফল্ট আচরণটি যদি তার দৃশ্যটি বর্তমানে দৃশ্যমান না হয় তবে তার দৃষ্টিভঙ্গিটি পরিষ্কার করতে হবে; সাবক্লাসগুলি অতিরিক্ত ডেটা স্ট্রাকচার পরিষ্কার করে ডিফল্ট আচরণকে পরিপূরক করতে পারে। চিত্রগুলির ক্যাশে বজায় রাখে এমন অ্যাপ্লিকেশনটি বর্তমানে অনস্ক্রীন নয় এমন কোনও চিত্র প্রকাশের মাধ্যমে সাড়া দিতে পারে।
মেমরি স্তর সতর্কতা কীভাবে পালন করবেন?
Http://developer.apple.com / লাইব্রেরি / আইস /# ডকুমেন্টেশন / আইফোন / কনসেপ্টুয়াল / আইফোনস্প্রোগ্রামিংগাইড / পারফরম্যান্স টিউনিং / পারফরম্যান্স টিউনিং এইচটিএমএল থেকে
যখন সিস্টেমটি আপনার অ্যাপ্লিকেশনটিতে একটি স্বল্প-স্মৃতি সতর্কতা প্রেরণ করে, তখনই তাড়াতাড়ি সাড়া দিন। আইওএস সমস্ত চলমান অ্যাপ্লিকেশনগুলিকে অবহিত করে যখনই ফ্রি মেমরির পরিমাণ নিরাপদ প্রান্তিকের নিচে নেমে যায়। (এটি স্থগিত হওয়া অ্যাপ্লিকেশনগুলিকে অবহিত করে না)) যদি আপনার অ্যাপ্লিকেশনটি এই সতর্কতাটি গ্রহণ করে তবে অবশ্যই এটি যথাসম্ভব মেমরি মুক্ত করে তুলবে। এটি করার সর্বোত্তম উপায় হ'ল ক্যাশে, চিত্র অবজেক্ট এবং অন্যান্য ডেটা অবজেক্টগুলির শক্তিশালী উল্লেখগুলি সরিয়ে ফেলা যা পরে পুনরায় তৈরি করা যায়।
UIKit নিম্ন-মেমরির সতর্কতাগুলি প্রাপ্ত করার জন্য কয়েকটি উপায় সরবরাহ করে, যার মধ্যে নিম্নলিখিতগুলি রয়েছে:
- অ্যাপ্লিকেশনটি প্রয়োগ করুনডিডিভিটমেমোরি ওয়ার্নিং: আপনার অ্যাপের প্রতিনিধিটির পদ্ধতি।
- আপনার কাস্টম ইউআইভিউউকন্ট্রোলার সাবক্লাসে করণীয় রিসিপমেমোরি ওয়ার্নিং পদ্ধতিটি ওভাররাইড করুন।
- ইউআইএপ্লিকেশনডিড রিসিপমেমোরি ওয়ার্নিং নোটফিকেশন নোটিফিকেশন পেতে রেজিস্টার করুন।
আপনার অ্যাপের মেমরির পদচিহ্ন কীভাবে হ্রাস করবেন?
- স্মৃতি ফাঁস দূর করুন।
- রিসোর্স ফাইলগুলি যতটা সম্ভব ছোট করুন।
- বড় ডেটা সেটগুলির জন্য কোর ডেটা বা এসকিউএলাইট ব্যবহার করুন।
- অলসভাবে সংস্থানগুলি লোড করুন।
- থাম্ব অপশনটি ব্যবহার করে আপনার প্রোগ্রামটি তৈরি করুন।
Http://developer.apple.com/library/ios/#docamentation/iphone/conceptual/iphoneosprogrammingguide/PerformanceTuning/PerformanceTuning.html এ বিশদ
কীভাবে বুদ্ধিমানভাবে স্মৃতি বরাদ্দ করবেন?
- স্বতঃস্ফুর্ত বস্তুগুলির আপনার ব্যবহার হ্রাস করুন : স্বয়ংক্রিয় রেফারেন্স গণনা (এআরসি) দিয়ে, / init অবজেক্টগুলি বরাদ্দ করা ভাল এবং সংকলকটি উপযুক্ত সময়ে আপনার জন্য তাদের ছেড়ে দেওয়া ভাল। এমনকি সাময়িক অবজেক্টের ক্ষেত্রেও এটি সত্য যে অতীতে আপনি তাদের বর্তমান পদ্ধতির ক্ষেত্রের অতীত থেকে বাঁচতে স্বাবলম্বী হতে পারেন।
- সংস্থানগুলিতে আকারের সীমাবদ্ধতা আরোপ করুন : একটি ছোট যখন এটি করবে তখন কোনও বৃহত সংস্থান ফাইল লোড করা এড়াবেন । উচ্চ-রেজোলিউশন চিত্র ব্যবহার করার পরিবর্তে আইওএস-ভিত্তিক ডিভাইসের জন্য উপযুক্ত আকারের একটি ব্যবহার করুন। যদি আপনার অবশ্যই বড় রিসোর্স ফাইলগুলি ব্যবহার করা হয় তবে যে কোনও সময় আপনার প্রয়োজনীয় ফাইলের কেবলমাত্র অংশটি লোড করার উপায়গুলি সন্ধান করুন। উদাহরণস্বরূপ, সম্পূর্ণ ফাইলটিকে মেমোরিতে লোড করার পরিবর্তে, মেমরির মধ্যে এবং বাইরে ফাইলের অংশগুলি ম্যাপ করতে mmap এবং মুনম্যাপ ফাংশন ব্যবহার করুন। মেমরিতে ফাইল ম্যাপিং সম্পর্কে আরও তথ্যের জন্য।
- আনবাউন্ডেড সমস্যা সেটগুলি এড়িয়ে চলুন : আনবাউন্ডেড সমস্যা সেটগুলিকে গণনা করার জন্য নির্বিচারে বড় পরিমাণে ডেটা লাগতে পারে। যদি সেটটি উপলব্ধ হওয়ার চেয়ে বেশি মেমরির প্রয়োজন হয় তবে আপনার অ্যাপ্লিকেশন গণনাগুলি সম্পূর্ণ করতে অক্ষম হতে পারে। আপনার অ্যাপ্লিকেশনগুলিকে যখনই সম্ভব এ জাতীয় সেটগুলি এড়ানো উচিত এবং জ্ঞাত মেমরি সীমাতে সমস্যা নিয়ে কাজ করা উচিত।