অ্যান্ড্রয়েড গেম ডেভলপমেন্টে সংকলনের ব্যবহারকে উত্সাহ দেওয়া হচ্ছে না?


10

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


তুমি কোথায় পড়েছ?
egarcia

সম্ভবত এখানে: developer.android.com/guide/practices/design/performance.html এটি কীভাবে বলেছে তা নোট করুন: সংক্ষেপে বলতে গেলে: ডিফল্টরূপে লুপের জন্য বর্ধিত ব্যবহার করুন, তবে সম্পাদনা-সমালোচনামূলক অ্যারেলিস্ট পুনরাবৃত্তির জন্য হাতে লেখা লিখিত লুপটি বিবেচনা করুন।
নাইলার

উত্তর:


8

এটি বেশিরভাগ মেমরি বরাদ্দ এবং আবর্জনা সংগ্রহ সম্পর্কে। রানটাইম চলাকালীন মেমরির বরাদ্দগুলি আপনার আবর্জনা সংগ্রহকারীকে আবর্জনা বের করার সুযোগ দেয়। যা আপনার অভিনয়কে আঘাত করে। জিসি যতটা সম্ভব কদাচিৎ ঘটতে হবে।

সর্বাধিক জাভা সংগ্রহ:

ক) তাদের প্রয়োজনের চেয়ে বেশি মেমরি বরাদ্দ করুন।

খ) যখন আপনি চান না তখন মেমরি বরাদ্দ করুন।

গ) সংগ্রহের মাধ্যমে পুনরাবৃত্তি করার সময় প্রতিটি পুনরুক্তকারীর জন্য মেমরি বরাদ্দ করুন।

এই জিনিসগুলি প্রতিরোধ করতে:

ক) স্থির আকারের সাথে সংগ্রহ বরাদ্দ করুন। অর্থাত। অবজেক্ট পুল তৈরি করুন।

খ) এই প্রোগ্রামটি পুল এ বরাদ্দ করুন।

গ) যে আকারের আকার () এবং একটি .গেট (ইনড ইনডেক্স) পদ্ধতি রয়েছে সেগুলি সংগ্রহের জন্য (অবজেক্ট আপত্তি: সংগ্রহ ) এড়িয়ে চলুন।


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

@ মিশেল: আজকের সিস্টেমে, দ্রুত ক্যাশে এবং ধীর মেমরি এবং একাধিক কোর সহ, মেমরির বরাদ্দগুলি আপনি করতে পারেন এমন ব্যয়বহুল জিনিস about

2
@ মিশেল: কোনও উচ্চতর পারফরম্যান্স বাণিজ্যিক গেম ইঞ্জিন তাদের মেমরি বরাদ্দের নিদর্শনগুলি অনুকূল করতে যতটা সম্ভব সম্ভব না করার জন্য আপনাকে কঠোর চাপ দেওয়া হবে। রিয়েলটাইম অ্যান্ড্রয়েড গেমসের বিষয় সম্পর্কে এখানে দীর্ঘ আলোচনা। এটি কিছুটা পুরানো, তবে এর বেশিরভাগটির এখনও প্রয়োগ করা উচিত: youtube.com/watch?v=U4Bk5rmIpic
নাইলার

অবশ্যই, আমাকে ভুল করবেন না: আমি আপনার উত্তরের সাথে একমত হতে চাই না। আমি কেবল এটি উল্লেখ করতে চেয়েছিলাম যে আপনার বিচার এবং সঠিক দাগগুলিতে অপ্টিমাইজ করা উচিত। কর্মক্ষেত্রে ন্যূনতম প্রভাব ফেলে এমন স্থানে অ্যারে ওভার কালেকশন ব্যবহারের কোনও সুবিধা নেই (বলুন 1%)। (এছাড়াও এখানে আরও বিস্তৃতভাবে আলোচনা করা হয়েছে: developer.android.com/guide/practices/design/… )
মাইকেল ক্লিমেন্ট

3
@ অ্যাটাকিংহোবো: আমি একমত নই অন্ধভাবে অপ্টিমাইজ করা সুবিধাজনক নয়, যা আপনার বক্তব্যটি আমার কাছে মনে হচ্ছে (আমি যদি ভুল করে থাকি তবে আমাকে সংশোধন করুন)। ক্রিস প্রুয়েট উপরে লিঙ্কযুক্ত গুগল আইও ভিডিওতেও বলেছিলেন: "গেমপ্লে ক্ষতিগ্রস্থ না হওয়া পর্যন্ত সপ্তাহের প্রতিটি দিন গতির চেয়ে বেশি নমনীয়তা চয়ন করুন।" এবং আমি এটির সাথে একমত
মাইকেল ক্লিমেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.