এটি একটি খুব বিরক্তিকর প্রশ্ন এবং আমি মনে করি যে এটি কোনও ভাষার ক্ষেত্রে কতটা উপযোগিতা সত্ত্বেও অনেকের জাভা বিরোধিতা করার ক্ষেত্রে অবদান রাখছে।
আপনি "System.gc" তে যে কোনও কিছু করতে বিশ্বাস করতে পারবেন না তা হ'ল অবিশ্বাস্যরকম হতাশাজনক এবং সহজেই "ভয়, অনিশ্চয়তা, সন্দেহ" ভাষাতে অনুভব করতে পারে।
অনেক ক্ষেত্রে মেমরির স্পাইকগুলির সাথে মোকাবিলা করা ভাল। যা আপনার কোনও গুরুত্বপূর্ণ ইভেন্ট হওয়ার আগেই উদ্দেশ্য নিয়ে ঘটেছিল, যার ফলে ব্যবহারকারীরা মনে করতে পারে যে আপনার প্রোগ্রামটি খারাপভাবে নকশা করা / প্রতিক্রিয়াহীন।
আবর্জনা সংগ্রহ নিয়ন্ত্রণের দক্ষতা থাকা একটি দুর্দান্ত শিক্ষার সরঞ্জাম হবে, যার ফলে আবর্জনা সংগ্রহ কীভাবে কাজ করে এবং প্রোগ্রামগুলি কীভাবে এটির পূর্বনির্ধারিত আচরণের পাশাপাশি নিয়ন্ত্রিত আচরণকেও কাজে লাগানো যায় তা বোঝার উন্নতি করে।
আমাকে এই থ্রেডের যুক্তি পর্যালোচনা করি।
- এটি অকার্যকর:
প্রায়শই, প্রোগ্রামটি কিছু করছে না এবং আপনি জানেন যে এটি ডিজাইন করা হয়েছে সে কারণে এটি কিছু করছে না। উদাহরণস্বরূপ, এটি বৃহত্তর অপেক্ষার বার্তা বাক্সের সাথে একরকম দীর্ঘ প্রতীক্ষা করছে এবং শেষে এটি আবর্জনা সংগ্রহ করার জন্য একটি কলও যুক্ত করতে পারে কারণ এটি চালানোর সময়টির সময়টির খুব সামান্য ভগ্নাংশ লাগবে দীর্ঘ অপেক্ষা করুন তবে আরও গুরুত্বপূর্ণ অপারেশনের মাঝামাঝি সময়ে জিসি অভিনয় থেকে বিরত থাকবেন।
- এটি সর্বদা একটি খারাপ অনুশীলন এবং ভাঙা কোড নির্দেশ করে।
আমি একমত নই, আপনার কাছে আবর্জনা সংগ্রহকারী কী তা বিবেচ্য নয়। এর 'কাজটি আবর্জনা ট্র্যাক করা এবং এটি পরিষ্কার করা।
ব্যবহারগুলি কম সমালোচনামূলক সময়ে জিসিকে কল করে আপনার জীবন যখন নির্দিষ্ট কোডটি চালানো হচ্ছে তার উপর নির্ভর করে তবে এর পরিবর্তে এটি আবর্জনা সংগ্রহ করার সিদ্ধান্ত নেয় আপনি এগুলির চলমান প্রতিকূলতা হ্রাস করেন।
অবশ্যই, এটি আপনার পছন্দ মতো বা প্রত্যাশার সাথে আচরণ নাও করতে পারে তবে আপনি যখন এটি কল করতে চান তখন আপনি জানেন যে কিছুই হচ্ছে না, এবং ব্যবহারকারী আস্তে / ডাউনটাইম সহ্য করতে ইচ্ছুক। যদি সিস্টেম.gc কাজ করে, দুর্দান্ত! যদি তা না হয় তবে কমপক্ষে আপনি চেষ্টা করেছিলেন। কোনও আবর্জনা সংগ্রাহকের অন্তর্নিহিত পার্শ্ব প্রতিক্রিয়া না থাকলে কেবল কোনও নিচু দিক নেই a কোনও আবর্জনা সংগ্রহকারীকে ম্যানুয়ালি আহ্বান জানানো হলে কীভাবে আচরণ করা হয় এবং এটি নিজেই অবিশ্বাসের কারণ হয়ে দাঁড়ায় to
- এটি সাধারণ ব্যবহারের ঘটনা নয়:
এটি এমন একটি ব্যবহারের কেস যা নির্ভরযোগ্যভাবে অর্জন করা যায় না, তবে সিস্টেমটি যদি সেভাবে ডিজাইন করা হত। এটি ট্র্যাফিক লাইট তৈরির মতো করে তৈরি করার মতো যাতে কিছু / সমস্ত ট্র্যাফিক লাইটের বোতাম কিছু না করে, এটি আপনাকে প্রশ্ন তোলে যে কেন বোতামটি শুরু হচ্ছে, জাভাস্ক্রিপ্টের আবর্জনা সংগ্রহের ক্রিয়াকলাপ নেই তাই আমরা ডন করি না এটির জন্য এটি যতটা যাচাই করা হবে না।
- অনুমানটি বলছে যে System.gc () হ'ল একটি ইঙ্গিত যা জিসি চালানো উচিত এবং ভিএম এটিকে উপেক্ষা করতে মুক্ত।
একটি "ইঙ্গিত" কি? "উপেক্ষা" কি? একটি কম্পিউটার সহজেই ইঙ্গিত নিতে পারে বা কিছু উপেক্ষা করতে পারে না, এমন কঠোর আচরণের পাথ রয়েছে যা এটি গতিশীল হতে পারে যা সিস্টেমের অভিপ্রায় দ্বারা পরিচালিত হয়। একটি যথাযথ উত্তরের মধ্যে আবর্জনা সংগ্রহকারী আসলে বাস্তবায়ন স্তরে যা করছে তা অন্তর্ভুক্ত থাকবে, যার ফলে আপনি যখন অনুরোধ করবেন তখন এটি সংগ্রহ না করায় causes বৈশিষ্ট্যটি কি কেবল একটি ন্যাপ? এমন কিছু শর্ত আছে যা আমাকে অবশ্যই পূরণ করতে হবে? এই শর্তগুলি কি?
এটি যেমন দাঁড়িয়ে আছে, জাভার জিসি প্রায়শই এমন দৈত্যের মতো মনে হয় যা আপনি বিশ্বাস করেন না। আপনি কখনই আসবেন বা কখন যাবেন তা আপনি জানেন না, এটি কী করতে চলেছে, কীভাবে এটি চলবে তা আপনি জানেন না। আমি প্রতি বিশেষজ্ঞদের ভিত্তিতে তাদের আবর্জনা সংগ্রহ কীভাবে কাজ করে সে সম্পর্কে আরও ভাল ধারণা রাখার কল্পনা করতে পারি, তবে বিশাল সংখ্যাগরিষ্ঠরা আশা করে এটি "কেবলমাত্র কাজ করে", এবং আপনার জন্য কাজ করার জন্য একটি অস্বচ্ছ-বোধকৃত অ্যালগরিদমকে বিশ্বাস করা হতাশাজনক।
কিছু সম্পর্কে পড়া বা কিছু শেখানো এবং আসলে এটির বাস্তবায়ন, সিস্টেমগুলির পার্থক্য এবং সোর্স কোডটি না দেখে এটির সাথে খেলতে সক্ষম হওয়ার মধ্যে একটি বড় ব্যবধান রয়েছে। এটি আত্মবিশ্বাস এবং আধিপত্য / বোঝার / নিয়ন্ত্রণের অনুভূতি তৈরি করে।
সংক্ষিপ্তসার হিসাবে, উত্তরগুলির সাথে একটি অন্তর্নিহিত সমস্যা রয়েছে "এই বৈশিষ্ট্যটি কিছু করতে পারে না এবং আমি কখন কীভাবে এটি করব এবং কখন তা করবে না এবং কেন হবে না বা করবে না তা কীভাবে তা জানাতে হবে না into প্রায়শই বোঝাচ্ছে যে দর্শনের পক্ষে এটি করার চেষ্টা করা কেবল তার পিছনে উদ্দেশ্য যুক্তিযুক্ত হলেও "reasonable
জাভা জিসির পক্ষে এটির মতো আচরণ করা ঠিক আছে, বা এটি নাও হতে পারে তবে এটি বোঝার জন্য, আপনি জিসিকে কীভাবে করতে পারবেন এবং তার উপর নির্ভর করতে পারেন তার একটি বিস্তৃত সংক্ষিপ্ত বিবরণ পেতে কোন দিকটি অনুসরণ করতে হবে তা সত্যিই কঠিন and না করা, তাই এটি খুব সহজ ভাষা অনাস্থা, কারণ একটি ভাষার উদ্দেশ্য দার্শনিক সীমা পর্যন্ত আচরণ নিয়ন্ত্রণ করা (একটি প্রোগ্রামার, বিশেষত novices কিছু সিস্টেম / ভাষা আচরণ থেকে অস্তিত্ব সংকটে পড়ে যাওয়া সহজ) আপনি সহ্য করতে সক্ষম (এবং যদি আপনি না করতে পারেন তবে আপনার প্রয়োজন না হওয়া পর্যন্ত আপনি ভাষাটি ব্যবহার করবেন না) এবং আরও কিছু জিনিস আপনি নিয়ন্ত্রণ করতে পারবেন না এমন কোনও কারণ কারণে আপনি তাদের নিয়ন্ত্রণ করতে পারবেন না তা জন্মগতভাবে ক্ষতিকারক।