ক্রস-প্ল্যাটফর্ম বিতরণ করার সময় আপনি যে সমস্ত হার্ডওয়্যারগুলির প্রতিটি এক ইঞ্চি, যেমন একটি মাল্টিথ্রেডেড নেক্সট-জেন এএএ গেম ইঞ্জিনের মতো প্রতিটি সিপিইউ কোর, সিমডি ইনট্রিনিকস, জিপিইউ, জিপিজিইউ ইত্যাদি ব্যবহার করেন, সেখানে আমি এই উদ্বেগটি দৃ strongly়ভাবে বুঝতে পারি পণ্য।
এই ক্ষেত্রে, আপনার সবচেয়ে খারাপ দুঃস্বপ্ন প্রায়শই সেই ক্ষেত্রে দেখা যায় যেখানে আপনার পরীক্ষাগুলি (ইউনিট এবং ইন্টিগ্রেশন) পরীক্ষিত প্রথম 5000 টি পৃথক মেশিন / প্ল্যাটফর্মের জন্য পাস করে তবে একটি অস্পষ্ট জিপিইউ মডেলের জন্য ড্রাইভার বাগের কারণে 5,001 তম ব্যর্থ হয় কেবল ভাবনা এ সম্পর্কে আমাকে শাওয়ার দেয় - আপনি সম্ভবত এগুলি আগে থেকে পরীক্ষা করতে বা ভবিষ্যদ্বাণী করতে পারবেন না।
বিশেষত আপনি যদি জিপিইউ শেডারগুলি লিখেন তবে আপনি একটি বিপরীত লটারি খেলতে পারেন যেখানে আপনার লিখিত অর্ধেক কোডটি অপরিজ্ঞিত আচরণের ডাক দেবে, যেহেতু জেপিইউর সমস্ত মডেল / ড্রাইভাররা এতে জড়িত কিছু বহনযোগ্য স্ট্যান্ডার্ড গ্যারান্টি রয়েছে। আজকাল এটি মাইনসুইপার খেলে যেমন কম-বেশি হচ্ছে, তবুও এটি লোকেদের কিছু ধারণা দেওয়া উচিত: http://theorangeduck.com/page/writing-portable-opengl । নব্বইয়ের দশকের শেষের দিকে এবং ২০০০ এর দশকের গোড়ার দিকে এটি চেষ্টা করা সত্যিই ভয়াবহ ছিল এবং এটি সর্বত্র মাইনসুইপার ছিল।
এই ধরণের ক্ষেত্রে, আপনার পণ্যটি আরও দৃify়তর করতে এবং স্থিতিশীল মুক্তির আগে এটি সম্পর্কে আত্মবিশ্বাস বোধ করার জন্য আপনার প্রায়শই 10,000+ পরীক্ষার্থীর একটি অত্যন্ত বিস্তৃত হার্ডওয়্যার এবং অপারেটিং সিস্টেমের দল প্রয়োজন । সমস্ত সংস্থার পক্ষে এ জাতীয় একটি বিস্তৃত পরীক্ষার ভিত্তি রাখার সামর্থ্য নেই এবং এটি সঠিকভাবে করার জন্য সকলেরই শৃঙ্খলা নেই (সমস্ত বিস্তৃতভাবে লক্ষ্যযোগ্য বিষয়গুলি কিছু অভ্যন্তরীণ প্রাক-আলফা / আলফা পর্যায়ে এত বেশি পরীক্ষক হওয়ার আগেই ঠিক করা উচিত বা অন্যথায় অপ্রয়োজনীয় প্রতিবেদনের বন্যা বিকাশকারীদের প্যাচ এবং প্রার্থনার আতঙ্কে ফেলে দিতে পারে)।
এই ক্ষেত্রে আমি যা প্রস্তাব দিচ্ছি তা হ'ল অন্যরা যা পরামর্শ দিয়েছে, তা ইন্টিগ্রেশন পরীক্ষার বিতরণকৃত সেটগুলিতে ফোকাস করবে। আপনি এটি ইনস্টলারের সাথে বান্ডেল করতে পারেন, ব্যবহারকারীরা বিকাশকারীরা কেন আপনাকে ইনস্টলেশন করতে ব্যর্থ হয়েছিল তা ইনস্টলেশন কেন ব্যর্থ হয়েছে সে সম্পর্কে বিশদ সরবরাহ করার জন্য যত্নবান মনোযোগ সহকারে একটি মৌলিক ডায়াগনস্টিক পরীক্ষা করতে হবে।
আর একটি জিনিস (আপনি যদি বসকে বোঝাতে পারেন তবে) একযোগে একীকরণের জন্য বিস্তৃত হার্ডওয়্যার উপলব্ধ। হার্ডওয়্যার / ওএস কম্বোয় আরও বেশি বৈচিত্র্যময় rier আপনি এমনকি বিভিন্ন ধরণের ক্রেপ হার্ডওয়্যার চান যা আপনার সিআই সার্ভারগুলির জন্য ন্যূনতম হার্ডওয়্যার প্রয়োজনীয়তার মডেল করে: আপনি কখনই জানেন না।
তবে আমি আরও একটি জিনিস প্রস্তাব করব:
লগিং
আমি যদি উপরে বর্ণিত দৃশ্যের মতো যদি আপনি কিছু নিয়ে কাজ করে থাকেন তবে প্রায়শই আপনি এই বিষয়গুলির জন্য সবচেয়ে বেশি সমস্যা হিসাবে প্রবণতা অর্জন করতে পারেন না (যারা সবচেয়ে খারাপ সম্ভাব্য গেটচগুলি সবচেয়ে খারাপ সময়ে প্রদর্শিত হয় এবং সম্ভবত এমনকি এটিতেও প্রদর্শিত হতে পারে না) এটি অত্যন্ত নির্দিষ্ট হার্ডওয়্যার / ওএস কম্বোতে সীমাবদ্ধ একটি ইস্যু হওয়ায় সবচেয়ে বিস্তৃত পরীক্ষার স্যুট।
তবুও এই ধরণের সমস্যাগুলির মধ্যে বেশিরভাগই অস্পষ্ট হার্ডওয়্যার অসুবিধাগুলি বা সরাসরি ড্রাইভারের ভুলত্রুটি বা ভুল ডায়ালিবের সাথে সংযোগ স্থাপন করে (আমি আসলে এই উদ্বেগের মুখোমুখি হইনি) আপনাকে সফ্টওয়্যারটি আরম্ভ করার পক্ষে অতীতের অতীতে পাবেন না। অসতর্কভাবে বলতে গেলে এটি খুব শীঘ্রই ক্র্যাশ হয়ে জ্বলে উঠবে।
আমি সুপারিশ করছি, ধার্মিকতার জন্য, এক ধরনের অনিবার্য আলিঙ্গন করার জন্য। আপনি সম্ভবত এই বিষয়গুলি সম্পর্কে কিছু করতে পারবেন না যা আপনি সম্ভবত বিস্তৃতভাবে পরীক্ষা করতে পারবেন না। হারিকেন (অসম্ভব) রোধ করার চেষ্টা করবেন না, তবে সেই উইন্ডোগুলিতে উঠুন।
সাধারণত এখানে, সর্বোত্তম জিনিসটি আমরা যত তাড়াতাড়ি সম্ভব সমস্যাটি সন্ধান করা, যেখানে এটি যতটা সম্ভব বিশদভাবে ঘটে (আমাদের সন্দেহভাজনদের তালিকা সংকীর্ণ করতে), এবং বিষয়টি রিপোর্ট হওয়ার পরে এএসএপটি ঠিক করা হয়েছে।
এই ক্ষেত্রে, লগিং একটি জীবনকাল হতে পারে। এই ধরণের ক্ষেত্রগুলির জন্য, আপনি এই স্প্যামি প্রযুক্তিগত লগগুলি তৈরি করতে পারেন যা কেউ কখনও পড়েনি। প্রায়শই প্রাসঙ্গিক হ'ল ড্রাইভারের ত্রুটির কারণে ব্যবহারকারী ক্রাশের আগে লগটিতে রেকর্ড করা একেবারে শেষ লাইন, যেমন আপনি একটি বাহ্যিক প্রক্রিয়া বা হুক লিখতে পারেন যা ক্র্যাশের জন্য নজরদারি করে এবং তারপরে লগের শেষ লাইনটি দেখায় যা ব্যবহারকারীরা অনুলিপি করতে পারে এবং আপনাকে পেস্ট করুন, যেমন ক্র্যাশ ডাম্প ছাড়াও।
যেহেতু এগুলি প্রায়শই গ্রাণুলার তথ্যের প্রয়োজন হয় এবং এই হার্ডওয়্যার / প্ল্যাটফর্ম / ড্রাইভার সম্পর্কিত কোডগুলির ক্ষেত্রে অত্যন্ত সংবেদনশীল ক্ষেত্রগুলির অনেকগুলি পারফরম্যান্স-সমালোচিত, এই উদ্ভট সমস্যা রয়েছে যেখানে লগইনটি এমন ঘন হারে ঘটতে পারে যে এটি আসলে ধীর হয়ে যাবে'll সফ্টওয়্যার ডাউন।
এক্ষেত্রে একটি কার্যকর কৌশলটি এই ধারণার উপর নির্ভর করা হয় যে একবার মৃত্যুদণ্ড কার্যকর করা কোনও জিনিস দ্বিতীয়বার, তৃতীয়বার, ইত্যাদি সাফল্যের সাথে সম্পাদন করবে This এটি সবচেয়ে যথাযথ অনুমান নয়, তবে এটি প্রায়শই "যথেষ্ট ভাল" (এবং কোনও কিছুর চেয়ে অসীম ভাল) । এটির সাহায্যে, আপনি ইতিমধ্যে কিছু লগইন করেছেন কিনা তা ট্র্যাক রাখতে আপনি কিছুটা বাহ্যিক অবস্থার ব্যবহার করতে পারেন এবং সেই সত্যিকারের দানাদার ক্ষেত্রে লগ করার জন্য পরবর্তী প্রচেষ্টাগুলি এড়িয়ে যেতে পারেন যেখানে কোডটি একটি লুপে বারবার অনুরোধ করা হবে।
যাইহোক, আমি আশা করি এটি সাহায্য করবে। আমি অতীতে এই ধরণের প্রলোভনে প্রবেশ করেছি এবং আমার এবং আমার দলের মধ্যে কিছু অতীত অভিজ্ঞতার ফলস্বরূপ জিপিইউ কোডিং (জিপিপিইউ এবং ছায়াময়) এর চারপাশে একটি বিড়বিড়তা পেয়েছি (কখনও কখনও কেবল অন্যান্য দলের সদস্যদের এগুলির সাথে সত্যিই ডিল দেখে দেরী এবং রিলিজ-পরবর্তী সময়ে আমাকে ক্রেপস দিয়েছে, যেমন একটি নির্দিষ্ট র্যাডিয়ন মডেলের কিছু এটিআই গ্লাচ যা অ্যান্টিয়ালাইজড লাইনগুলি রেন্ডারিংয়ের উপর ক্র্যাশ করবে, পরে রিপোর্ট করেছে এবং কেবলমাত্র একটি কার্যক্ষম সমাধানের সাথে পরিচিত সমস্যা হিসাবে চিহ্নিত হয়েছে)।
লগিংটি সেই জিনিসটি ছিল যা আমাদের বাটগুলিকে সেখানে সংরক্ষণ করেছিল, আমাদের প্রায়শই 10,001 তম অস্পষ্ট প্রোটোটাইপ মেশিনে সমস্যাটি একটি অনলাইন জিপিইউর সাথে আমরা শুনতে পাইনি, কোডের শেষ লাইনটি সঙ্গে সঙ্গে আমাদের ঠিক যেখানে ব্যর্থতা 2 এর নিচে নেমেছে তা দেখাতে দিয়েছিল with বা সন্দেহভাজন, যেমন যদি এটা বিস্তারিত shader ভিতরে, আমরা সেনাদের এর করছি ধরনের যেহেতু আমরা লগিং একটি জিপিইউ shader ভিতরে ব্যবহার করতে পারবেন না, কিন্তু আমরা অন্তত ব্যবহার লগিং এ দেখতে পারেন যেমন কোডের 3 লাইন যা shader সমস্যা ছিল সরাসরি তদন্ত শুরু।