এখানে কিছু চিন্তাভাবনা এবং ধারণা রয়েছে:
আরও সৃজনশীলভাবে রম ব্যবহার করুন।
রমে আপনি যা কিছু করতে পারেন সঞ্চয় করুন। জিনিসগুলি গণনা করার পরিবর্তে, রমে লুক-আপ টেবিলগুলি সঞ্চয় করুন। (নিশ্চিত করুন যে আপনার সংকলকটি কেবলমাত্র পঠনযোগ্য বিভাগে আপনার চেহারা-সারণীগুলি আউটপুট দিচ্ছে! যাচাই করার জন্য রানটাইমের সময় মেমরির ঠিকানাগুলি মুদ্রণ করুন!) আপনার বাধা ভেক্টর টেবিলটি রমে সংরক্ষণ করুন। অবশ্যই, আপনার র্যামের সাথে আপনার রমের তুলনা কতটা নির্ভরযোগ্য তা দেখতে কয়েকটি পরীক্ষা চালান।
স্ট্যাকের জন্য আপনার সেরা র্যাম ব্যবহার করুন।
স্ট্যাকের এসইইউগুলি সম্ভবত ক্র্যাশগুলির সর্বাধিক সম্ভাব্য উত্স, কারণ এটি হ'ল সূচক ভেরিয়েবল, স্ট্যাটাস ভেরিয়েবল, রিটার্ন ঠিকানা এবং বিভিন্ন ধরণের পয়েন্টারগুলির মতো জিনিস সাধারণত বাস করে live
টাইমার-টিক এবং ওয়াচডগ টাইমার রুটিন প্রয়োগ করুন।
আপনি প্রতিটি টাইমার টিকের একটি "স্যানিটি চেক" রুটিন চালাতে পারেন, পাশাপাশি সিস্টেম লকআপটি পরিচালনা করতে একটি ওয়াচডগ রুটিনও চালাতে পারেন। আপনার প্রধান কোডটি পর্যায়ক্রমে অগ্রগতি নির্দেশ করার জন্য একটি কাউন্টারকে বাড়িয়ে তুলতে পারে এবং বিচক্ষণতা-চেকের রুটিন নিশ্চিত করে যে এটি ঘটেছে।
সফ্টওয়্যারটিতে ত্রুটি-সংশোধন-কোডগুলি প্রয়োগ করুন ।
ত্রুটিগুলি সনাক্ত করতে এবং / অথবা সঠিক করতে আপনি নিজের ডেটাতে রিডানডেন্সি যুক্ত করতে পারেন। এটি প্রসেসিংয়ের সময় যুক্ত করবে, প্রসেসরটিকে দীর্ঘ সময়ের জন্য রেডিয়েশনের সংস্পর্শে রেখে, ত্রুটির সম্ভাবনা বাড়িয়ে তুলবে, সুতরাং আপনাকে অবশ্যই বাণিজ্য বন্ধ বিবেচনা করতে হবে।
ক্যাশে মনে রাখবেন।
আপনার সিপিইউ ক্যাশের আকারগুলি পরীক্ষা করুন। আপনি সম্প্রতি অ্যাক্সেস করেছেন বা সংশোধন করেছেন এমন ডেটা সম্ভবত ক্যাশে থাকবে। আমি বিশ্বাস করি আপনি কমপক্ষে কয়েকটি ক্যাশে অক্ষম করতে পারবেন (বড় পারফরম্যান্স ব্যয়ে); এসইইউগুলিতে ক্যাশেগুলি কতটা সংবেদনশীল তা দেখার জন্য আপনার এটি চেষ্টা করা উচিত। ক্যাশে যদি র্যামের চেয়ে শক্ত হয় তবে আপনি ক্যাশে রয়েছেন তা নিশ্চিত করার জন্য এবং নিয়মিত র্যামকে লাইনে ফিরিয়ে আনার জন্য আপনি নিয়মিত সমালোচনামূলক ডেটা পড়তে এবং পুনরায় লিখতে পারেন।
পৃষ্ঠা-ফল্ট হ্যান্ডলারগুলি চতুরতার সাথে ব্যবহার করুন।
আপনি যদি মেমরি পৃষ্ঠাটি উপস্থিত না হিসাবে চিহ্নিত করেন, আপনি যখন অ্যাক্সেস করার চেষ্টা করবেন তখন সিপিইউ একটি পৃষ্ঠা ত্রুটি জারি করবে। আপনি একটি পৃষ্ঠা-ফল্ট হ্যান্ডলার তৈরি করতে পারেন যা পড়ার অনুরোধটি সার্ভিস করার আগে কিছু পরীক্ষা করে। (পিসি অপারেটিং সিস্টেমগুলি স্বচ্ছভাবে ডিস্কে বদলি হওয়া পৃষ্ঠাগুলি লোড করতে এটি ব্যবহার করে))
সমালোচনামূলক জিনিসগুলির জন্য সমাবেশ ভাষা ব্যবহার করুন (যা সব কিছু হতে পারে)।
সমাবেশ ভাষার সাথে, আপনি জানেন যে নিবন্ধগুলিতে কী আছে এবং র্যামে কী রয়েছে; আপনি কী জানেন যে সিপিইউ কী বিশেষ র্যাম টেবিল ব্যবহার করছে এবং আপনি আপনার ঝুঁকি কমিয়ে আনার জন্য কোনও চক্রাকার উপায়ে জিনিস ডিজাইন করতে পারেন।
objdump
উত্পন্ন সমাবেশের ভাষাটি দেখার জন্য ব্যবহার করুন এবং আপনার প্রতিটি রুটিনে কত কোড গ্রহণ করবে তা নিয়ে কাজ করুন।
আপনি যদি লিনাক্সের মতো কোনও বড় ওএস ব্যবহার করেন তবে আপনি সমস্যার জন্য জিজ্ঞাসা করছেন; এখানে অনেক জটিলতা এবং অনেক কিছু ভুল হতে আছে।
মনে রাখবেন এটি সম্ভাবনার একটি খেলা।
একজন মন্তব্যকারী মো
ত্রুটিগুলি ধরতে আপনি যে প্রতিটি রুটিন লিখেছেন তা একই কারণ থেকে নিজেকে ব্যর্থ করতে পারে।
এটি সত্য হলেও, অন্য কোথাও ত্রুটির সম্ভাবনার চেয়ে চেক রুটিনটি সঠিকভাবে কাজ করতে প্রয়োজনীয় কোডের 100 বাইটের কোড এবং ডেটাতে ত্রুটির সম্ভাবনা অনেক কম। যদি আপনার রমটি বেশ নির্ভরযোগ্য এবং প্রায় সমস্ত কোড / ডেটা আসলে রমে থাকে তবে আপনার প্রতিক্রিয়া আরও ভাল।
অপ্রয়োজনীয় হার্ডওয়্যার ব্যবহার করুন।
অভিন্ন কোড সহ 2 বা ততোধিক অভিন্ন হার্ডওয়্যার সেটআপ ব্যবহার করুন। ফলাফলগুলি পৃথক হলে, একটি রিসেট ট্রিগার করা উচিত। 3 বা ততোধিক ডিভাইসের সাহায্যে আপনি কোন "ভোটদান" সিস্টেমটি ব্যবহার করতে পারেন এটি চিহ্নিত করার চেষ্টা করার জন্য কোনটি আপস করা হয়েছে।