ব্যান্ডউইথ সম্পর্কে প্রশ্নটি বাদে এটি এমএমও পারফরম্যান্সের সাথে সম্পর্কিত । এটি সিপিইউ লোড সম্পর্কে।
আমি নোড.জেএস এবং ওয়েবজিএল ব্যবহার করে একটি সাধারণ এফপিএস একসাথে রেখেছি। এটি অত্যন্ত সহজ, অনেকটা মিডি মাইজের বাডিমেজ ক্লোনটির মতো। খুব কম চলছে, প্রত্যেকে দুটি মাত্রায় (কোনও উচ্চতা নেই) চলে, সহজ প্রজেক্টিলেস অঙ্কুর করে দেয়ালে চলে যায়।
এই মুহুর্তে, আমি যদি সার্ভারের সাথে একাধিক সংযোগ করি যেখানে প্রতিটি খেলোয়াড় চেনাশোনাগুলিতে স্পিন করার সময় দ্রুত গুলি চালায় তবে সার্ভারটি একটি কোর বাড়িয়ে দেয়ার আগে এবং গতি কমিয়ে দেওয়ার আগে আমি খেলায় প্রায় 15 - 20 খেলোয়াড় পেতে পারি। সার্ভারে 30 fps এ চলার সময় এটি হয়। 10 এফপিএসে, আমি প্রায় 25 - 30 টি সংযোগ পাই। এটি বেশ খারাপ, যেহেতু গেমটি শীঘ্রই আরও অনেক কিছু করতে চলেছে এবং এটির একটি সম্ভাব্য প্রচেষ্টা হিসাবে আমাকে আরও খেলোয়াড়ের ফিট করতে হবে।
আমার ভাই তার সহকর্মীর টিএফ 2 সার্ভার সম্পর্কে কিছু পরিসংখ্যান তুলে ধরেছেন। তার সার্ভারটি আমাদের তুলনায় কম চশমা, তবু এটি টিএফ 2 চালায়, স্পষ্টতই আরও জটিল একটি গেম, প্রতি সেকেন্ডে তীব্র 500 টিকের সাথে, প্রতিটি কোর প্রতি 36 জন ব্যবহারকারী with এছাড়াও, আমরা বর্তমানে তাদের তুলনায় অনেক বেশি ব্যান্ডউইথ ব্যবহার করি তবে আমরা এখনও এটিকে কম করার চেষ্টা করিনি।
এটা কিভাবে সম্ভব? এই পরিমাণে সার্ভারের কার্যকারিতা বাড়ানোর জন্য কী ধরণের কৌশল আছে? আমি জানি এমন কিছু বিষয়গুলির মধ্যে রয়েছে:
- সার্ভারে ফ্রেমরেট হ্রাস করা এবং ক্লায়েন্টের অবস্থানগুলি ইন্টারপোল্ট করা। আমি কিছু সুবিধা পেয়েছি, তবে স্পষ্টতই টিএফ 2 সার্ভার এটি নিয়েও মাথা ঘামায় না।
- ক্লায়েন্টের সাথে সংঘর্ষ সনাক্তকরণের মতো ব্যয়বহুল জিনিসগুলি করা এবং এটি সার্ভারে অবিচ্ছিন্নভাবে যাচাই করা। আমি এখনও এই উপর সরানো হয়নি, আমি আজ রাতে করব। তবুও আমি এত বড় লাভ আশা করি না।
- গণনা হ্রাস করতে অঞ্চলগুলিতে (কোয়াড ট্রি) খেলার ক্ষেত্রটি ভাঙ্গুন। এখনও এই জন্য একটি সুযোগ ছিল না।
- আমি দুর্ভাগ্যজনক সম্ভাবনা বিবেচনা করেছি যে টিএফ 2 যা ব্যবহার করছে তার চেয়ে নোড.জেএস কেবল ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বেড়েছে এবং এ জাতীয় উচ্চ তীব্রতার জন্য এটি উপযুক্ত নয় not
- সার্ভার কনফিগারেশন ম্যাজিক এ সব কি?
তাহলে কেবলমাত্র সার্ভারে প্রয়োজনীয় ন্যূনতম করতে তবুও ত্রুটিবিহীন গেমের অভিজ্ঞতা থাকার জন্য শিল্পের অন্যান্য কৌশলগুলি কী কী? "সিপিইউর সময় বাঁচাতে ক্লায়েন্টের কাছে পিছিয়ে থাকা" এবং "ক্লায়েন্টকে বিশ্বাস করবেন না" এর মধ্যে একটি বিশাল দ্বন্দ্ব রয়েছে, তাই সম্ভবত এটি বিভিন্ন পরিস্থিতিতে লাইনটি কোথায় আঁকা তা জানতে সহায়তা করে?
হালনাগাদ
প্রোফাইলিং হ'ল একমাত্র মন্ত্র যা আমি কখনও খুঁজে পেয়েছি যা একেবারে দুর্গম। আমি দ্রুত আমার কোডের চারপাশে কিছু সময় নির্ধারিত ফাংশন আবৃত করে দিয়েছি (ধন্যবাদ, এফপি!) এবং আমি কখনই প্রত্যাশা করি না তা আবিষ্কার করে: ক্লায়েন্টগুলিতে ডেটা সম্প্রচার করার কাজটি প্রায়োগিক সময় কার্যকর হয়। বিশেষত, এর প্রায় 90% আরও পরীক্ষা করে দেখা গেছে যে এই সময় ক্লায়েন্টের সংখ্যা এবং ডেটার আকার উভয়ের উপর নির্ভরশীল, তবে আরও পরে। একটি 20 ব্যবহারকারী লোডে, আমি আমার সম্প্রচারের সময়টি 90% কেটে ফেলেছি, পুরো ডেটার পরিবর্তে কেবল "{}" প্রেরণ করে 24 মিমি থেকে মাত্র 2 মিমি পর্যন্ত রেখেছি। তবে মাত্র ৫ জন ব্যবহারকারীর সাথে ব্রডকাস্টিংয়ে প্রায় 0.5 এমএস লাগবে। সুতরাং আমি এখানে কিছু অপ্টিমাইজেশন পরিষ্কারভাবে প্রয়োজন।
প্রথম সর্বাধিক সুস্পষ্ট উন্নতি হ'ল দৃষ্টিকোণ পরীক্ষা করা। এটি ডেটা সম্পর্কে যত্নশীল ব্যক্তির সংখ্যা এবং আগ্রহী পক্ষগুলিতে প্রেরিত ডেটার পরিমাণ উভয় হ্রাস করবে। এই অঞ্চলে আমি চেষ্টা করতে পারি এমন অন্য কৌশলগুলি কী আছে, যেগুলি আমার সম্প্রচারের কাজকর্মের ব্যয়কে হ্রাস করার উপর দৃষ্টি নিবদ্ধ করে?