কোনও গেমের জন্য 100% সিপিইউ ব্যবহার করা কি স্বাভাবিক?


23

আমি কেবলমাত্র আমার গেম ইঞ্জিনে মাল্টি-থ্রেড ইনপুট হ্যান্ডলিং বাস্তবায়ন করেছি যেখানে ওএস থেকে ইনপুট সংগ্রহ করতে ও টাইম স্ট্যাম্পগুলি পোষ্ট করে এমন কোডটি পৃথক থ্রেডে থাকে এবং মূল থ্রেডের প্রতিটি ফ্রেম আমি জড়িত ইনপুটটি একটি পর্যন্ত খাই লজিকাল গেম সময়। এটি সব কাজ করে তবে এই সেট আপটি আমার 100% সিপিইউ ব্যবহার করছে। আমার দুটি কোর রয়েছে এবং আমার গেমটি চালানোর সময় এটি 100% পর্যন্ত চলেছে।

তারা অন্যান্য খেলাগুলিও তা করে কিনা তা আমি পরীক্ষা করে দেখেছি। উদাহরণস্বরূপ, Skyrim এবং ডুম 3 ঠিক 60% সিপিইউ দিয়ে ঠিক আছে বলে মনে হচ্ছে।

100% সিপিইউ ব্যবহারের জন্য মাল্টি-থ্রেডড ইনপুট ব্যবহার করা এমন কোনও গেমের পক্ষে কি এটি গ্রহণযোগ্য? যদি তা না হয় তবে ইনপুট থ্রেড দ্বারা সিপিইউ ব্যবহার কমাতে এই জাতীয় গেমগুলি কী কৌশলগুলি ব্যবহার করে?


7
সুতরাং আপনি যা বলছেন, আপনার মূলত অন্তহীন অবস্থায় একটি থ্রেড রয়েছে যখন লুপগুলি নিয়মিত নতুন ইভেন্টগুলির জন্য ওএসকে পোল করে? while true do CheckForEvents;
ক্রোমস্টার বলেছেন মনিকা

5
যদি কোনও অ্যাপ্লিকেশন যদি ব্যবহার এবং সিপিইউ গতি নির্বিশেষে 100% সিপিইউ সময় ব্যবহার করে তবে তা যথাযথভাবে বাগ হিসাবে বিবেচিত হতে পারে। মনিটরের রিফ্রেশ চক্রের প্রতি ফ্রেম রেন্ডার করার জন্য আপনার প্রয়োজনের চেয়ে বেশি সিপিইউ সময় ব্যবহার করা উচিত নয়।
ক্যাস্পার্ড

3
@ দ্য লাইটস্পার্ক কি ভোটদানের থ্রেডও ঘুমায় না? আপনি যদি অবিচ্ছিন্নভাবে লুপিং এবং ঘুম না করে পরীক্ষা করে দেখেন তবে আপনি সম্ভবত প্রয়োজনের তুলনায় অনেক বেশি সিপিইউ সময় খেতে পারবেন।
লুক

3
পুনঃলুক: এমনকি নির্বাচনের মধ্যে মাত্র এক মিলি সেকেন্ড ঘুমানো সিপিইউর ব্যবহারকে মারাত্মকভাবে হ্রাস করবে। কিছুক্ষণ আগে, আমি একটি কমান্ড লাইন সরঞ্জামের জন্য একটি জিইউআই লিখেছিলাম যা একটি ইনপুট ফাইল নিয়েছিল এবং আউটপুট ফাইলটি প্রায় একই আকারে তৈরি করে। শতাংশটি অনুমান করতে, আমি আউটপুট ফাইলের ফাইলের আকারটি পড়েছি এবং অগ্রগতি বারটি আপডেট করেছি (ব্যবহার করে while (true))। এটি করার জন্য একটি সিপিইউর 90% + ব্যবহার করা হয়েছে। এতে একটি যুক্ত করা Thread.Sleep(5)হয়েছে সিপিইউ ব্যবহার 40% এর নিচে নামিয়ে আনা। ভোটদানের মধ্যে 25 মিলিসেকেন্ডে গিয়ে এটি 10% এর নিচে নামিয়েছে।
কোল জনসন

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

উত্তর:


41

হ্যাঁ, রিয়েল-টাইম গেমটির পক্ষে এটি যতটা দ্রুত এবং ভাল করতে পারার জন্য 100% সিপিইউ ব্যবহার করার চেষ্টা করা এটাই স্বাভাবিক । সুতরাং সেই খেলোয়াড় প্রতি সেকেন্ডে যতটা ফ্রেম দেখতে পাবে বা তার পিসি যতটা ভাল পদার্থবিজ্ঞানের সিমুলেশন বা অন্য কিছু সরবরাহ করতে পারে sees

আপনার ক্ষেত্রে - না, থ্রেড নিতে এবং এটি লুপের ইভেন্টগুলিতে পোল করার জন্য এটি একটি অদক্ষ নকশার মতো দেখাচ্ছে while true do CheckForEvents;। আমি ভুল হলে আমাকে সংশোধন করুন, তবে ওএস ইতিমধ্যে ইভেন্টগুলি পোল করে। প্রতি টিকিটে একবার আপনার মূল থ্রেড থেকে এগুলি পরীক্ষা করা উচিত।

প্রধান গেম লুপটি প্রতি সেকেন্ডে 30+ টিক্স চালানোর পক্ষে পর্যাপ্ত দ্রুত হওয়া উচিত, যা অনেক গেমের পোলিং কমান্ডের পক্ষে যথেষ্ট। খেলোয়াড় যদি তার কমান্ডগুলি যেমন 0-33 মিমি পরে প্রক্রিয়া করে তবে কোনও পার্থক্য দেখতে পাবে না। অন্যদিকে আপনি আরও উপকারী কাজের জন্য অতিরিক্ত সিআইইউ কোর ব্যবহার করতে পারতেন যেমন অনেক ভাল এআই বা পদার্থবিজ্ঞান বা যা কিছু।

পিএস মন্তব্যে স্পষ্ট করার জন্য অনুরোধ করা হয়েছে, সমস্ত ধরণের গেমের জন্য চোখের উপরের সংখ্যাটি নেবেন না। যদিও টিবিএস গেমটির জন্য প্রতি মুহুর্তে 1 টি টিক প্রয়োজন হতে পারে এবং আরটিএস গেমটি 10 ​​টি টিকের পালা দিয়ে জরিমানা করতে পারে, রেসসিমের মতো অন্যান্য জেনারগুলিতে আরও অনেক কিছু প্রয়োজন। এবং অবশ্যই ফ্রেমেরেটের সাথে যুক্তিযুক্ত টিকগুলি বেঁধে রাখবেন না, এটি দুটি পৃথক জিনিস।


5
আমি এই প্রশ্নটি উত্সাহিত করব, কিন্তু তারপরে আমি আপনাকে দেখতে পাচ্ছি যে প্রতি সেকেন্ডে 30 টি টিক্স দেওয়া উচিত। আইএমএইচও (এবং অন্যান্য অনেক খেলোয়াড়), আপনার প্রতি সেকেন্ডে 60 টি টিক (এবং এভাবে 60 ফ্রেম) লক্ষ্য করা উচিত। 60 জন মানুষের জন্য 60 টি এফপিএস আরও তরল দেখায়, আরও প্রতিক্রিয়াশীল খায় এবং ব্যবহারকারীদের গতির অসুস্থতার একটি নির্দিষ্ট উপসেট দেওয়ার সম্ভাবনা কম থাকে।
Nzall

4
ইনপুট জন্য 33ms বিলম্ব খুব লক্ষণীয় ...
Synxis

1
@ নাটকেরখফস: আমি আরটিএস ব্যাকগ্রাউন্ড থেকে এসেছি, যেখানে 10 টি টিক স্বাভাবিক হয়। এটি একটি বিস্তৃত বিশ্ব, আমি সে সম্পর্কে বিশদ যুক্ত করব। নির্দেশ করার জন্য ধন্যবাদ।
ক্রমস্টার বলছেন মনিকা

1
@ ক্রমস্টারন: আমি সম্পূর্ণ নেটের পক্ষে কথা বলতে পারছি না, তবে তৃতীয় অনুচ্ছেদে "30hz আপনার লক্ষ্য হওয়া উচিত" হিসাবে ব্যাখ্যা করা যেতে পারে যদিও এটি "30hz সর্বনিম্ন আপনি সহ্য করতে পারবেন" হিসাবেও ব্যাখ্যা করা যেতে পারে (যা আপনার বোঝাতে চেয়েছিলেন )।
শান মিডলডিচ

1
100% সিপিইউ ব্যবহার করা ভয়ানক অনুশীলন। আপনি ল্যাপটপ ব্যবহারকারীদের এমন জিনিসগুলির জন্য ঝাঁকুনি দিচ্ছেন যা কোনওভাবেই আকার বা ফর্মকে 100% সিপিইউ ব্যবহার করার প্রয়োজন হয় না। একটি যথাযথ গেম লুপ কোড করুন যা মনিটরে দক্ষতার সাথে ফ্রেমগুলি খাওয়াতে পারে।
ক্রিস ডেনেট

9

একটি অবিচ্ছিন্ন সক্রিয় উইন্ডো রিফ্রেশ সহ একটি গেমটি বেশিরভাগ সম্পূর্ণ পর্দা মোডে চালিত হবে এবং ওএস দ্বারা পরিচালিত মেশিনের একমাত্র (বড়) প্রোগ্রাম হবে। সুতরাং এটি সিপিইউর 100% ব্যবহার করা সম্পূর্ণরূপে গ্রহণযোগ্য, কারণ অন্য কোনও কিছুর এটির প্রয়োজন নেই।

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

@ ক্রোমস্টেরম যেমন বলেছিল, ওএস সাধারণত আপনার জন্য ইতিমধ্যে ইভেন্টগুলি পোল করে, সুতরাং ওএসের চেয়ে দ্রুত লুপ তৈরি করার দরকার নেই। আপনার যদি মাত্র দুটি কোর থাকে তবে কেবলমাত্র দ্বিতীয় সনাক্তকারীদের জন্য 100% ব্যবহার করা ঘটনা সনাক্তকরণের জন্য ভাল ধারণা নয় কারণ আপনি যদি কেবলমাত্র ইভেন্টটিকে মূল আপডেট লুপে স্থানান্তর করেন তবে এটি কার্যকর করা খুব দ্রুত। পরিবর্তে অন্য থ্রেডের সাথে মূল থ্রেড কাজের অংশের জন্য এই কোরটি ব্যবহার করার চেষ্টা করা উচিত।


"একটি ঘুমের পদ্ধতি ব্যবহার করুন" - আমি কি এই ভেবে ঠিক আছি যে এটি ফ্রেমরেট সীমাবদ্ধ হিসাবে পরিচিত?
গুড্ডর

3
ঘুম ফ্রেমের সঠিক পদ্ধতি সীমিত, যদি লক্ষ্য রিফ্রেশ হারের নিরীক্ষণ করতে সীমা ফ্রেম হয়, তারপর ভাল ব্যবহার হার্ডওয়্যার-সমর্থিত VSync নয় (অথবা NVIDIA এর ছ-সিঙ্ক, যদি উপলব্ধ)
সার্জ সুপবিশেষ

8

পিসি বা মোবাইল গেমের সমস্ত উপলব্ধ সিপিইউ সময় ব্যবহার করার লক্ষ্যে কয়েকটি ত্রুটি রয়েছে।

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

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

পদার্থবিজ্ঞানের পরিবর্তনশীলতা: গেমপ্লে প্রভাবিত পদার্থবিজ্ঞান যদি শক্তিশালী মেশিনে আরও বিশদ হয় তবে একই প্লেয়ারের ক্রিয়াকলাপে বিভিন্ন মেশিনে বিভিন্ন ফলাফল হবে। এর অর্থ খেলোয়াড় কোনও শক্তিশালী বা দুর্বল মেশিন ব্যবহার করে প্রতারণা করতে সক্ষম হতে পারে। আইডির ভূমিকম্প তৃতীয় এরিনা ফ্রেম রেট জাম্পের উচ্চতা প্রভাবিত করার জন্য কুখ্যাত । এটি এড়াতে, প্রচুর গেমস পদার্থবিজ্ঞানের জন্য একটি নির্দিষ্ট সময় পদক্ষেপ ব্যবহার করে। তবে এটি গেমপ্লে থেকে সংযোগ বিহীন পদার্থবিজ্ঞানের উপর প্রভাব ফেলবে না, যেমন কণা প্রভাব বা কাপড়ের প্রভাব বা পদার্থবিজ্ঞানের চেয়ে উচ্চতর ফ্রেমের হারে ভিডিও রেন্ডার করার জন্য পদার্থবিজ্ঞানের ফ্রেমের মধ্যে স্থানাঙ্কের বিভাজন। সুতরাং মডেল-ভিউ-কন্ট্রোলারের কিছু বৈকল্পিক ব্যবহার করে আপনার পদার্থবিজ্ঞানের নকশা করুন আর্কিটেকচার, যেখানে প্রয়োজনীয় জিনিসগুলি (ত্বরণ, হিট সনাক্তকরণ এবং এর মতো) মডেলটিতে যায় এবং সামঞ্জস্যযোগ্য আই ক্যান্ডি ভিউতে যায়।

এআই পরিবর্তনশীলতা: শক্তিশালী মেশিনে এআই আরও বিশদ বিবরণী দিলে শত্রুরা বিভিন্ন মেশিনে ভিন্ন আচরণ করবে ve উদাহরণস্বরূপ, গো বা দাবা বাস্তবায়নে প্রতিপক্ষ দুর্বল পিসিতে দুর্বল হয়ে যাবে এবং খেলোয়াড়রা দুর্বল পিসিতে গেমটি খেলতে বা অ্যান্টিভাইরাস বা ভিডিও ট্রান্সকোডিং বা অপারেটিং সিস্টেম আপডেটের মতো ব্যাকগ্রাউন্ড প্রক্রিয়া চালিয়ে প্রতারণা করতে পারে।


4
পাওয়ার ব্যবহারের জন্য +1। বিশেষত আপনার যেমন মোবাইল এবং ট্যাবলেট শিল্প বিবেচনা করা উচিত, যেখানে এটি অত্যন্ত গুরুত্বপূর্ণ।
আকালতার

1
বিদ্যুতের ব্যবহার ডেস্কটপগুলিতে এমনকি শব্দকেও প্রভাবিত করে। সিস্টেমটি শীতল হলে আধুনিক ডেস্কটপগুলির পক্ষে তাদের অনুরাগীদের মন্থর এবং শান্ত রাখা সাধারণ। এছাড়াও, সম্ভবত খেলতে গিয়ে ব্যবহারকারী কোনও ভিডিও এনকোড করছে (স্বল্প অগ্রাধিকারে), সুতরাং কোনও অতিরিক্ত সিপিইউ সময় নষ্ট হচ্ছে না। বা প্লেয়াররা টুইচিংয়ে স্ট্রিমিংয়ের জন্য, ভিডিও এনকোডিংয়ের জন্য আরও বেশি চক্র রেখে দেওয়া বড় ব্যাপার, এবং উচ্চ মানের ভিডিও সক্ষম করে। (ভিডিও এনকোডিং CPU- র সময়, বিটরেট, এবং মান, যাতে আরও বেশি CPU- র সময় মানে রিয়েল-টাইম একই বিটরেট এ উচ্চ মানের এ এনকোডিং কাছ থেকে তিন উপায় ট্রেড বন্ধ।)
পিটার Cordes

1
বিদ্যুৎ ব্যবহারের প্রাথমিক বিবেচনা হওয়া উচিত, অন্যান্য সমস্ত বিবেচনা মাধ্যমিক, আইএমএইচও। আমি কেবলমাত্র 100% সিপিইউ ব্যবহার করব (যদি এটি সত্যিই সহায়তা করে!) এটি ভিআর স্টাফ।
ক্রিস ডেনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.