থ্রেড সময়সূচী বিশ্লেষণ করুন, থ্রেড সময়সূচী বিশ্লেষণ করুন, থ্রেড সময়সূচী বিশ্লেষণ করুন, থ্রেড সময়সূচী বিশ্লেষণ করুন

আপনার গেম প্রসেস থ্রেডগুলি যথাযথভাবে ব্যবহার করা হয়েছে এবং সেরা পারফরম্যান্সের জন্য নির্ধারিত হয়েছে কিনা তা নির্ধারণ করার জন্য কয়েকটি বিষয় বিবেচনা করতে হবে।

  • ফ্রেম পেসিং
  • মাল্টিথ্রেডিং এবং থ্রেড সমান্তরালকরণ
  • CPU কোর অ্যাফিনিটি

মাল্টিথ্রেডিং

অনেক গেম এবং গেম ইঞ্জিন সিপিইউ কাজকে যৌক্তিক কাজগুলিতে ভাগ করতে মাল্টিথ্রেডিং ব্যবহার করে, যা কিছুটা স্বাধীনভাবে চালানো যেতে পারে। একটি সাধারণ কনফিগারেশন হল ইনপুট এবং গেম লজিকের জন্য একটি গেম থ্রেড, আঁকার জন্য বস্তু প্রস্তুত ও জমা দেওয়ার জন্য একটি রেন্ডার থ্রেড এবং অ্যানিমেশন বা অডিওর মতো অন্যান্য সাবটাস্কের জন্য কর্মী থ্রেড।

আমরা মাল্টিথ্রেডিংয়ের কার্যক্ষমতা লাভের সুবিধা নিতে থ্রেডগুলিকে সমান্তরাল করার পরামর্শ দিই। এর একটি উদাহরণ হল একটি দৃশ্য যেখানে গেম এবং রেন্ডার থ্রেডগুলি বিভিন্ন কোরে আংশিক বা সম্পূর্ণভাবে একযোগে চলছে। এটি সবসময় সম্ভব হবে না, যেমন ভাগ করা ডেটা নির্ভরতার ক্ষেত্রে; যাইহোক, যখন সম্ভব, এর ফলে কম CPU সময় হতে পারে এবং এইভাবে সম্ভাব্য উচ্চ ফ্রেম রেট।

একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম
চিত্র 1. একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম

CPU কোর অ্যাফিনিটি

একটি ফ্যাক্টর যা উল্লেখযোগ্যভাবে আপনার CPU ওয়ার্কলোডগুলির কার্যকারিতাকে প্রভাবিত করে তা হল কীভাবে সেগুলি কোরে নির্ধারিত হয়। এটি দুটি উপাদানে বিভক্ত হতে পারে:

  • আপনার গেম থ্রেডগুলি তাদের কাজের চাপের জন্য সবচেয়ে উপযুক্ত কোরে চলছে কিনা।
  • আপনার গেমের থ্রেডগুলি ঘন ঘন কোরের মধ্যে স্যুইচ করে কিনা।

আধুনিক ডিভাইসগুলি প্রায়শই ভিন্নধর্মী কম্পিউটিং নামে একটি আর্কিটেকচার ব্যবহার করে, যেখানে কোরগুলির কার্যকারিতার বিভিন্ন স্তর রয়েছে:

  • এক বা কয়েকটি কোর শীর্ষস্থানীয় পারফরম্যান্স অফার করে, তবে আরও শক্তি ব্যবহার করে। এগুলিকে কখনও কখনও "বড়" কোর বলা হয়।
  • অন্যান্য কোরের পিক পারফরম্যান্স কম, তবে আরও শক্তি-দক্ষ। এগুলিকে কখনও কখনও "ছোট" কোর বলা হয়।
  • ঐচ্ছিকভাবে: এক বা একাধিক কোর কর্মক্ষমতা এবং শক্তির মধ্যে ভারসাম্য অফার করে। এগুলিকে কখনও কখনও "মধ্য" কোর বলা হয়।

আপনি একটি ট্রেস নেওয়ার সময় প্রোফাইল কনফিগারেশনে CPU সক্রিয় করে CPU ব্যবহারের অধীনে CPU থ্রেড আচরণের তদন্ত করতে পারেন। আপনার ট্রেস <200 ms এর একটি বিভাগে জুম করে, আপনি আপনার ডিভাইসের CPU কোরে চলমান পৃথক প্রক্রিয়াগুলি দেখতে পারেন। সাধারণত, ছোট কোরগুলি ছোট সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '0'-'3') যেখানে বড় কোরগুলি উচ্চতর সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '6'-'7') এবং মধ্যম কোরগুলি উপস্থিত থাকলে সূচীগুলি দখল করবে মধ্যে (উদাহরণস্বরূপ, CPUs '5'-'6')। এটি সাধারণ নিয়ম অনুসারে, তবে এটি একটি গ্যারান্টি নয়।

আপনি যদি দেখেন যে কিছু নির্দিষ্ট থ্রেড সিপিইউতে নির্ধারিত হচ্ছে যা তাদের কর্মক্ষমতা বা শক্তির চাহিদা পূরণ করে না, তাহলে সেই থ্রেডগুলির জন্য ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করার কথা বিবেচনা করুন।

প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে
চিত্র 2. প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে

আপনার থ্রেডগুলি কোরের মধ্যে স্যুইচ করছে কিনা তাও আপনি লক্ষ্য করতে পারেন। এই ধরনের কোর সুইচগুলি কনটেক্সট সুইচ থেকে কিছু ওভারহেড এবং একটি কোরের ক্যাশে/রেজিস্টার সহ রাজ্যের ক্ষতি করে।

প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা বেগুনি রঙে দেখানো হয়েছে
চিত্র 3. প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা কোরগুলির মধ্যে পরিবর্তন করে, বেগুনি রঙে দেখানো হয়েছে

একটি থ্রেডের জন্য সিপিইউ অ্যাফিনিটি সেট করা আপনার গেমটি অগ্রভাগে থাকাকালীন প্রদত্ত কোরে এটি নির্ধারণ করতে সিস্টেমকে নির্দেশ দেয়। এটি করার সময় বিবেচনা করার জন্য বেশ কয়েকটি কারণ রয়েছে:

  • প্ল্যাটফর্ম সফ্টওয়্যার লোড এবং থার্মাল থ্রটলিং এর মতো রানটাইম কারণগুলির জন্য টাস্ক প্লেসমেন্ট গতিশীলভাবে সামঞ্জস্য করতে পারে না।
  • বিভিন্ন ডিভাইসে পারফরম্যান্স টেস্টিং খুব আলাদা পারফরম্যান্স বৈশিষ্ট্য পেতে পারে, বিশেষ করে যদি ডিভাইসগুলি মূল্য পয়েন্ট বা রিলিজের তারিখ অনুসারে যথেষ্ট পরিবর্তিত হয়।

    একটি নতুন বা আরও ব্যয়বহুল ডিভাইস একটি প্রদত্ত কাজের চাপকে সামান্য কোরে স্বাচ্ছন্দ্যে চালাতে পারে, তবে একটি পুরানো বা আরও সাশ্রয়ী মূল্যের ডিভাইসের একই কাজের চাপের সময়সীমা পূরণের জন্য একটি বড় কোরের প্রয়োজন হতে পারে।

  • বড় কোরের সাথে সম্পর্ক জোর করে, আপনি অপ্রয়োজনীয়ভাবে ব্যাটারি ড্রেন এবং তাপীয় লোড বাড়াতে পারেন।

এই কারণে, সাধারণত ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করা এড়াতে ভাল।

,

আপনার গেম প্রসেস থ্রেডগুলি যথাযথভাবে ব্যবহার করা হয়েছে এবং সেরা পারফরম্যান্সের জন্য নির্ধারিত হয়েছে কিনা তা নির্ধারণ করার জন্য কয়েকটি বিষয় বিবেচনা করতে হবে।

  • ফ্রেম পেসিং
  • মাল্টিথ্রেডিং এবং থ্রেড সমান্তরালকরণ
  • CPU কোর অ্যাফিনিটি

মাল্টিথ্রেডিং

অনেক গেম এবং গেম ইঞ্জিন সিপিইউ কাজকে যৌক্তিক কাজগুলিতে ভাগ করতে মাল্টিথ্রেডিং ব্যবহার করে, যা কিছুটা স্বাধীনভাবে চালানো যেতে পারে। একটি সাধারণ কনফিগারেশন হল ইনপুট এবং গেম লজিকের জন্য একটি গেম থ্রেড, আঁকার জন্য বস্তু প্রস্তুত ও জমা দেওয়ার জন্য একটি রেন্ডার থ্রেড এবং অ্যানিমেশন বা অডিওর মতো অন্যান্য সাবটাস্কের জন্য কর্মী থ্রেড।

আমরা মাল্টিথ্রেডিংয়ের কার্যক্ষমতা লাভের সুবিধা নিতে থ্রেডগুলিকে সমান্তরাল করার পরামর্শ দিই। এর একটি উদাহরণ হল একটি দৃশ্য যেখানে গেম এবং রেন্ডার থ্রেডগুলি বিভিন্ন কোরে আংশিক বা সম্পূর্ণভাবে একযোগে চলছে। এটি সবসময় সম্ভব হবে না, যেমন ভাগ করা ডেটা নির্ভরতার ক্ষেত্রে; যাইহোক, যখন সম্ভব, এর ফলে কম CPU সময় হতে পারে এবং এইভাবে সম্ভাব্য উচ্চ ফ্রেম রেট।

একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম
চিত্র 1. একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম

CPU কোর অ্যাফিনিটি

একটি ফ্যাক্টর যা উল্লেখযোগ্যভাবে আপনার CPU ওয়ার্কলোডগুলির কার্যকারিতাকে প্রভাবিত করে তা হল কীভাবে সেগুলি কোরে নির্ধারিত হয়। এটি দুটি উপাদানে বিভক্ত হতে পারে:

  • আপনার গেম থ্রেডগুলি তাদের কাজের চাপের জন্য সবচেয়ে উপযুক্ত কোরে চলছে কিনা।
  • আপনার গেমের থ্রেডগুলি ঘন ঘন কোরের মধ্যে স্যুইচ করে কিনা।

আধুনিক ডিভাইসগুলি প্রায়শই ভিন্নধর্মী কম্পিউটিং নামে একটি আর্কিটেকচার ব্যবহার করে, যেখানে কোরগুলির কার্যকারিতার বিভিন্ন স্তর রয়েছে:

  • এক বা কয়েকটি কোর শীর্ষস্থানীয় পারফরম্যান্স অফার করে, তবে আরও শক্তি ব্যবহার করে। এগুলিকে কখনও কখনও "বড়" কোর বলা হয়।
  • অন্যান্য কোরের পিক পারফরম্যান্স কম, তবে আরও শক্তি-দক্ষ। এগুলিকে কখনও কখনও "ছোট" কোর বলা হয়।
  • ঐচ্ছিকভাবে: এক বা একাধিক কোর কর্মক্ষমতা এবং শক্তির মধ্যে ভারসাম্য অফার করে। এগুলিকে কখনও কখনও "মধ্য" কোর বলা হয়।

আপনি একটি ট্রেস নেওয়ার সময় প্রোফাইল কনফিগারেশনে CPU সক্রিয় করে CPU ব্যবহারের অধীনে CPU থ্রেড আচরণের তদন্ত করতে পারেন। আপনার ট্রেস <200 ms এর একটি বিভাগে জুম করে, আপনি আপনার ডিভাইসের CPU কোরে চলমান পৃথক প্রক্রিয়াগুলি দেখতে পারেন। সাধারণত, ছোট কোরগুলি ছোট সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '0'-'3') যেখানে বড় কোরগুলি উচ্চতর সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '6'-'7') এবং মধ্যম কোরগুলি উপস্থিত থাকলে সূচীগুলি দখল করবে মধ্যে (উদাহরণস্বরূপ, CPUs '5'-'6')। এটি সাধারণ নিয়ম অনুসারে, তবে এটি একটি গ্যারান্টি নয়।

আপনি যদি দেখেন যে কিছু নির্দিষ্ট থ্রেড সিপিইউতে নির্ধারিত হচ্ছে যা তাদের কর্মক্ষমতা বা শক্তির চাহিদা পূরণ করে না, তাহলে সেই থ্রেডগুলির জন্য ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করার কথা বিবেচনা করুন।

প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে
চিত্র 2. প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে

আপনার থ্রেডগুলি কোরের মধ্যে স্যুইচ করে কিনা তাও আপনি লক্ষ্য করতে পারেন। এই ধরনের কোর সুইচগুলি কনটেক্সট সুইচ থেকে কিছু ওভারহেড এবং একটি কোরের ক্যাশে/রেজিস্টার সহ রাজ্যের ক্ষতি করে।

প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা বেগুনি রঙে দেখানো হয়েছে
চিত্র 3. প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা কোরগুলির মধ্যে পরিবর্তন করে, বেগুনি রঙে দেখানো হয়েছে

একটি থ্রেডের জন্য সিপিইউ অ্যাফিনিটি সেট করা আপনার গেমটি অগ্রভাগে থাকাকালীন প্রদত্ত কোরে এটি নির্ধারণ করতে সিস্টেমকে নির্দেশ দেয়। এটি করার সময় বিবেচনা করার জন্য বেশ কয়েকটি কারণ রয়েছে:

  • প্ল্যাটফর্ম সফ্টওয়্যার লোড এবং থার্মাল থ্রটলিং এর মতো রানটাইম কারণগুলির জন্য টাস্ক প্লেসমেন্ট গতিশীলভাবে সামঞ্জস্য করতে পারে না।
  • বিভিন্ন ডিভাইসে পারফরম্যান্স টেস্টিং খুব আলাদা পারফরম্যান্স বৈশিষ্ট্য পেতে পারে, বিশেষ করে যদি ডিভাইসগুলি মূল্য পয়েন্ট বা রিলিজের তারিখ অনুসারে যথেষ্ট পরিবর্তিত হয়।

    একটি নতুন বা আরও ব্যয়বহুল ডিভাইস একটি প্রদত্ত কাজের চাপকে সামান্য কোরে স্বাচ্ছন্দ্যে চালাতে পারে, তবে একটি পুরানো বা আরও সাশ্রয়ী মূল্যের ডিভাইসের একই কাজের চাপের সময়সীমা পূরণের জন্য একটি বড় কোরের প্রয়োজন হতে পারে।

  • বড় কোরের সাথে সম্পর্ক জোর করে, আপনি অপ্রয়োজনীয়ভাবে ব্যাটারি ড্রেন এবং তাপীয় লোড বাড়াতে পারেন।

এই কারণে, সাধারণত ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করা এড়াতে ভাল।

,

আপনার গেম প্রসেস থ্রেডগুলি যথাযথভাবে ব্যবহার করা হয়েছে এবং সেরা পারফরম্যান্সের জন্য নির্ধারিত হয়েছে কিনা তা নির্ধারণ করার জন্য কয়েকটি বিষয় বিবেচনা করতে হবে।

  • ফ্রেম পেসিং
  • মাল্টিথ্রেডিং এবং থ্রেড সমান্তরালকরণ
  • CPU কোর অ্যাফিনিটি

মাল্টিথ্রেডিং

অনেক গেম এবং গেম ইঞ্জিন সিপিইউ কাজকে যৌক্তিক কাজগুলিতে ভাগ করতে মাল্টিথ্রেডিং ব্যবহার করে, যা কিছুটা স্বাধীনভাবে চালানো যেতে পারে। একটি সাধারণ কনফিগারেশন হল ইনপুট এবং গেম লজিকের জন্য একটি গেম থ্রেড, আঁকার জন্য বস্তু প্রস্তুত ও জমা দেওয়ার জন্য একটি রেন্ডার থ্রেড এবং অ্যানিমেশন বা অডিওর মতো অন্যান্য সাবটাস্কের জন্য কর্মী থ্রেড।

আমরা মাল্টিথ্রেডিংয়ের কার্যক্ষমতা লাভের সুবিধা নিতে থ্রেডগুলিকে সমান্তরাল করার পরামর্শ দিই। এর একটি উদাহরণ হল একটি দৃশ্য যেখানে গেম এবং রেন্ডার থ্রেডগুলি বিভিন্ন কোরে আংশিক বা সম্পূর্ণভাবে একযোগে চলছে। এটি সবসময় সম্ভব হবে না, যেমন ভাগ করা ডেটা নির্ভরতার ক্ষেত্রে; যাইহোক, যখন সম্ভব, এর ফলে কম CPU সময় হতে পারে এবং এইভাবে সম্ভাব্য উচ্চ ফ্রেম রেট।

একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম
চিত্র 1. একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম

CPU কোর অ্যাফিনিটি

একটি ফ্যাক্টর যা উল্লেখযোগ্যভাবে আপনার CPU ওয়ার্কলোডগুলির কার্যকারিতাকে প্রভাবিত করে তা হল কীভাবে সেগুলি কোরে নির্ধারিত হয়। এটি দুটি উপাদানে বিভক্ত হতে পারে:

  • আপনার গেম থ্রেডগুলি তাদের কাজের চাপের জন্য সবচেয়ে উপযুক্ত কোরে চলছে কিনা।
  • আপনার গেমের থ্রেডগুলি ঘন ঘন কোরের মধ্যে স্যুইচ করে কিনা।

আধুনিক ডিভাইসগুলি প্রায়শই ভিন্নধর্মী কম্পিউটিং নামে একটি আর্কিটেকচার ব্যবহার করে, যেখানে কোরগুলির কার্যকারিতার বিভিন্ন স্তর রয়েছে:

  • এক বা কয়েকটি কোর শীর্ষস্থানীয় পারফরম্যান্স অফার করে, তবে আরও শক্তি ব্যবহার করে। এগুলিকে কখনও কখনও "বড়" কোর বলা হয়।
  • অন্যান্য কোরের পিক পারফরম্যান্স কম, তবে আরও শক্তি-দক্ষ। এগুলিকে কখনও কখনও "ছোট" কোর বলা হয়।
  • ঐচ্ছিকভাবে: এক বা একাধিক কোর কর্মক্ষমতা এবং শক্তির মধ্যে ভারসাম্য অফার করে। এগুলিকে কখনও কখনও "মধ্য" কোর বলা হয়।

আপনি একটি ট্রেস নেওয়ার সময় প্রোফাইল কনফিগারেশনে CPU সক্রিয় করে CPU ব্যবহারের অধীনে CPU থ্রেড আচরণের তদন্ত করতে পারেন। আপনার ট্রেস <200 ms এর একটি বিভাগে জুম করে, আপনি আপনার ডিভাইসের CPU কোরে চলমান পৃথক প্রক্রিয়াগুলি দেখতে পারেন। সাধারণত, ছোট কোরগুলি ছোট সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '0'-'3') যেখানে বড় কোরগুলি উচ্চতর সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '6'-'7') এবং মধ্যম কোরগুলি উপস্থিত থাকলে সূচীগুলি দখল করবে মধ্যে (উদাহরণস্বরূপ, CPUs '5'-'6')। এটি সাধারণ নিয়ম অনুসারে, তবে এটি একটি গ্যারান্টি নয়।

আপনি যদি দেখেন যে কিছু নির্দিষ্ট থ্রেড সিপিইউতে নির্ধারিত হচ্ছে যা তাদের কর্মক্ষমতা বা শক্তির চাহিদা পূরণ করে না, তাহলে সেই থ্রেডগুলির জন্য ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করার কথা বিবেচনা করুন।

প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে
চিত্র 2. প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে

আপনার থ্রেডগুলি কোরের মধ্যে স্যুইচ করে কিনা তাও আপনি লক্ষ্য করতে পারেন। এই ধরনের কোর সুইচগুলি কনটেক্সট সুইচ থেকে কিছু ওভারহেড এবং একটি কোরের ক্যাশে/রেজিস্টার সহ রাজ্যের ক্ষতি করে।

প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা বেগুনি রঙে দেখানো হয়েছে
চিত্র 3. প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা কোরগুলির মধ্যে পরিবর্তন করে, বেগুনি রঙে দেখানো হয়েছে

একটি থ্রেডের জন্য সিপিইউ অ্যাফিনিটি সেট করা আপনার গেমটি অগ্রভাগে থাকাকালীন প্রদত্ত কোরে এটি নির্ধারণ করতে সিস্টেমকে নির্দেশ দেয়। এটি করার সময় বিবেচনা করার জন্য বেশ কয়েকটি কারণ রয়েছে:

  • প্ল্যাটফর্ম সফ্টওয়্যার লোড এবং থার্মাল থ্রটলিং এর মতো রানটাইম কারণগুলির জন্য টাস্ক প্লেসমেন্ট গতিশীলভাবে সামঞ্জস্য করতে পারে না।
  • বিভিন্ন ডিভাইসে পারফরম্যান্স টেস্টিং খুব আলাদা পারফরম্যান্স বৈশিষ্ট্য পেতে পারে, বিশেষ করে যদি ডিভাইসগুলি মূল্য পয়েন্ট বা রিলিজের তারিখ অনুসারে যথেষ্ট পরিবর্তিত হয়।

    একটি নতুন বা আরও ব্যয়বহুল ডিভাইস একটি প্রদত্ত কাজের চাপকে সামান্য কোরে স্বাচ্ছন্দ্যে চালাতে পারে, তবে একটি পুরানো বা আরও সাশ্রয়ী মূল্যের ডিভাইসের একই কাজের চাপের সময়সীমা পূরণের জন্য একটি বড় কোরের প্রয়োজন হতে পারে।

  • বড় কোরের সাথে সম্পর্ক জোর করে, আপনি অপ্রয়োজনীয়ভাবে ব্যাটারি ড্রেন এবং তাপীয় লোড বাড়াতে পারেন।

এই কারণে, সাধারণত ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করা এড়াতে ভাল।

,

আপনার গেম প্রসেস থ্রেডগুলি যথাযথভাবে ব্যবহার করা হয়েছে এবং সেরা পারফরম্যান্সের জন্য নির্ধারিত হয়েছে কিনা তা নির্ধারণ করার জন্য কয়েকটি বিষয় বিবেচনা করতে হবে।

  • ফ্রেম পেসিং
  • মাল্টিথ্রেডিং এবং থ্রেড সমান্তরালকরণ
  • CPU কোর অ্যাফিনিটি

মাল্টিথ্রেডিং

অনেক গেম এবং গেম ইঞ্জিন সিপিইউ কাজকে যৌক্তিক কাজগুলিতে ভাগ করতে মাল্টিথ্রেডিং ব্যবহার করে, যা কিছুটা স্বাধীনভাবে চালানো যেতে পারে। একটি সাধারণ কনফিগারেশন হল ইনপুট এবং গেম লজিকের জন্য একটি গেম থ্রেড, আঁকার জন্য বস্তু প্রস্তুত ও জমা দেওয়ার জন্য একটি রেন্ডার থ্রেড এবং অ্যানিমেশন বা অডিওর মতো অন্যান্য সাবটাস্কের জন্য কর্মী থ্রেড।

আমরা মাল্টিথ্রেডিংয়ের কার্যক্ষমতা লাভের সুবিধা নিতে থ্রেডগুলিকে সমান্তরাল করার পরামর্শ দিই। এর একটি উদাহরণ হল একটি দৃশ্য যেখানে গেম এবং রেন্ডার থ্রেডগুলি বিভিন্ন কোরে আংশিক বা সম্পূর্ণভাবে একযোগে চলছে। এটি সবসময় সম্ভব হবে না, যেমন ভাগ করা ডেটা নির্ভরতার ক্ষেত্রে; যাইহোক, যখন সম্ভব, এর ফলে কম CPU সময় হতে পারে এবং এইভাবে সম্ভাব্য উচ্চ ফ্রেম রেট।

একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম
চিত্র 1. একটি ভাল-সমান্তরাল প্রধান এবং রেন্ডার থ্রেড, সেইসাথে একটি কর্মী থ্রেড এবং অডিও থ্রেড সহ গেম

CPU কোর অ্যাফিনিটি

একটি ফ্যাক্টর যা উল্লেখযোগ্যভাবে আপনার CPU ওয়ার্কলোডগুলির কার্যকারিতাকে প্রভাবিত করে তা হল কীভাবে সেগুলি কোরে নির্ধারিত হয়। এটি দুটি উপাদানে বিভক্ত হতে পারে:

  • আপনার গেম থ্রেডগুলি তাদের কাজের চাপের জন্য সবচেয়ে উপযুক্ত কোরে চলছে কিনা।
  • আপনার গেমের থ্রেডগুলি ঘন ঘন কোরের মধ্যে স্যুইচ করে কিনা।

আধুনিক ডিভাইসগুলি প্রায়শই ভিন্নধর্মী কম্পিউটিং নামে একটি আর্কিটেকচার ব্যবহার করে, যেখানে কোরগুলির কার্যকারিতার বিভিন্ন স্তর রয়েছে:

  • এক বা কয়েকটি কোর শীর্ষস্থানীয় পারফরম্যান্স অফার করে, তবে আরও শক্তি ব্যবহার করে। এগুলিকে কখনও কখনও "বড়" কোর বলা হয়।
  • অন্যান্য কোরের পিক পারফরম্যান্স কম, তবে আরও শক্তি-দক্ষ। এগুলিকে কখনও কখনও "ছোট" কোর বলা হয়।
  • ঐচ্ছিকভাবে: এক বা একাধিক কোর কর্মক্ষমতা এবং শক্তির মধ্যে ভারসাম্য অফার করে। এগুলিকে কখনও কখনও "মধ্য" কোর বলা হয়।

আপনি একটি ট্রেস নেওয়ার সময় প্রোফাইল কনফিগারেশনে CPU সক্রিয় করে CPU ব্যবহারের অধীনে CPU থ্রেড আচরণের তদন্ত করতে পারেন। আপনার ট্রেস <200 ms এর একটি বিভাগে জুম করে, আপনি আপনার ডিভাইসের CPU কোরে চলমান পৃথক প্রক্রিয়াগুলি দেখতে পারেন। সাধারণত, ছোট কোরগুলি ছোট সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '0'-'3') যেখানে বড় কোরগুলি উচ্চতর সূচকগুলির সাথে মিলে যায় (উদাহরণস্বরূপ, CPUs '6'-'7') এবং মধ্যম কোরগুলি উপস্থিত থাকলে সূচীগুলি দখল করবে মধ্যে (উদাহরণস্বরূপ, CPUs '5'-'6')। এটি সাধারণ নিয়ম অনুসারে, তবে এটি একটি গ্যারান্টি নয়।

আপনি যদি দেখেন যে কিছু নির্দিষ্ট থ্রেড সিপিইউতে নির্ধারিত হচ্ছে যা তাদের কর্মক্ষমতা বা শক্তির চাহিদা পূরণ করে না, তাহলে সেই থ্রেডগুলির জন্য ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করার কথা বিবেচনা করুন।

প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে
চিত্র 2. প্রধান এবং রেন্ডার থ্রেড সহ গেমটি প্রাথমিকভাবে বড় কোরে (CPU 6-7) চলছে, হালকা নীল রঙে দেখানো হয়েছে

আপনার থ্রেডগুলি কোরের মধ্যে স্যুইচ করে কিনা তাও আপনি লক্ষ্য করতে পারেন। এই ধরনের কোর সুইচগুলি কনটেক্সট সুইচ থেকে কিছু ওভারহেড এবং একটি কোরের ক্যাশে/রেজিস্টার সহ রাজ্যের ক্ষতি করে।

প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা বেগুনি রঙে দেখানো হয়েছে
চিত্র 3. প্রধান (থ্রেড-7) এবং রেন্ডার থ্রেড (থ্রেড-8) সহ গেম যা কোরগুলির মধ্যে পরিবর্তন করে, বেগুনি রঙে দেখানো হয়েছে

একটি থ্রেডের জন্য সিপিইউ অ্যাফিনিটি সেট করা আপনার গেমটি অগ্রভাগে থাকাকালীন প্রদত্ত কোরে এটি নির্ধারণ করতে সিস্টেমকে নির্দেশ দেয়। এটি করার সময় বিবেচনা করার জন্য বেশ কয়েকটি কারণ রয়েছে:

  • প্ল্যাটফর্ম সফ্টওয়্যার লোড এবং থার্মাল থ্রটলিং এর মতো রানটাইম কারণগুলির জন্য টাস্ক প্লেসমেন্ট গতিশীলভাবে সামঞ্জস্য করতে পারে না।
  • বিভিন্ন ডিভাইসে পারফরম্যান্স টেস্টিং খুব আলাদা পারফরম্যান্স বৈশিষ্ট্য পেতে পারে, বিশেষ করে যদি ডিভাইসগুলি মূল্য পয়েন্ট বা রিলিজের তারিখ অনুসারে যথেষ্ট পরিবর্তিত হয়।

    একটি নতুন বা আরও ব্যয়বহুল ডিভাইস একটি প্রদত্ত কাজের চাপকে সামান্য কোরে স্বাচ্ছন্দ্যে চালাতে পারে, তবে একটি পুরানো বা আরও সাশ্রয়ী মূল্যের ডিভাইসের একই কাজের চাপের সময়সীমা পূরণের জন্য একটি বড় কোরের প্রয়োজন হতে পারে।

  • বড় কোরের সাথে সম্পর্ক জোর করে, আপনি অপ্রয়োজনীয়ভাবে ব্যাটারি ড্রেন এবং তাপীয় লোড বাড়াতে পারেন।

এই কারণে, সাধারণত ম্যানুয়ালি সিপিইউ অ্যাফিনিটি সেট করা এড়াতে ভাল।