Ehcache সম্পর্কে আলোচনা অন গাদা এবং অফ-গাদা মেমরি। পার্থক্য কি? এগুলি কনফিগার করতে কোন JVM আরগ ব্যবহার করা হয়?
Ehcache সম্পর্কে আলোচনা অন গাদা এবং অফ-গাদা মেমরি। পার্থক্য কি? এগুলি কনফিগার করতে কোন JVM আরগ ব্যবহার করা হয়?
উত্তর:
অন-হিপ স্টোরটি এমন বস্তুগুলিকে বোঝায় যা জাভা হিপে উপস্থিত থাকবে (এবং এটিও জিসির সাপেক্ষে)। অন্যদিকে, অফ-হিপ স্টোরটি (সিরিয়ালাইজড) অবজেক্টগুলিকে বোঝায় যা EHCache দ্বারা পরিচালিত হয়, তবে স্তূপের বাইরে সঞ্চিত থাকে (এবং এটিও জিসির অধীন নয়)। অফ-হিপ স্টোরটি মেমরিতে পরিচালিত হতে থাকায় এটি অন-হিপ স্টোরের তুলনায় কিছুটা ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ডিস্ক স্টোরের থেকে দ্রুত।
অফ-হিপ স্টোর পরিচালনা ও ব্যবহারের সাথে জড়িত অভ্যন্তরীণ বিবরণ প্রশ্নে পোস্ট করা লিঙ্কটিতে খুব স্পষ্ট নয়, সুতরাং অফ ডিস্ক পরিচালনা করতে ব্যবহৃত টেরাকোটা বিগমেমরির বিশদটি পরীক্ষা করে নেওয়া বুদ্ধিমানের কাজ হবে would দোকান। বিগমেমরি (অফ-হিপ স্টোর) বেশ কয়েকটি মেগাবাইট বা গিগা বাইট বৃহত একটি স্তূপে জিসির ওভারহেড এড়াতে ব্যবহার করতে হবে। বিগমেমরি জেভিএম প্রক্রিয়াটির মেমরি অ্যাড্রেস স্পেস ব্যবহার করে সরাসরি বাইটবফারগুলির মাধ্যমে যা অন্যান্য নেটিভ জাভা অবজেক্টের মতো জিসির অধীন নয়।
http://code.google.com/p/fast-serialization/wiki/QuickStartHeapOff থেকে
হিপ-অফলোডিং কী?
সাধারণত আপনার বরাদ্দ করা সমস্ত অস্থায়ী বস্তু জাভাগুলির আবর্জনা সংগ্রাহক দ্বারা পরিচালিত হয়। যদিও ভিএম আবর্জনা সংগ্রহের একটি ভাল কাজ করে তবে একটি নির্দিষ্ট সময়ে ভিএমকে একটি তথাকথিত 'ফুল জিসি' করতে হয়। একটি সম্পূর্ণ জিসি সম্পূর্ণ বরাদ্দ হিপ স্ক্যান করার সাথে জড়িত, যার অর্থ GC বিরতি / মন্দা কোনও অ্যাপ্লিকেশন হিপ আকারের সমানুপাতিক। সুতরাং আপনাকে 'মেমোরিটি সস্তা' বলে এমন কোনও ব্যক্তির উপর বিশ্বাস করবেন না। জাভা মেমরি গ্রাস কর্মক্ষমতা ব্যথা। অতিরিক্তভাবে আপনি হ্যাপ মাপ> 1 জিবি ব্যবহার করে উল্লেখযোগ্য বিরতি পেতে পারেন। যদি আপনার কাছে কোনও ক্লাস্টার বা গ্রিডে নিকট-রিয়েল-টাইম স্টাফ চলছে তবে এটি জঘন্য হতে পারে জাভা প্রক্রিয়াটি প্রতিক্রিয়াহীন হতে পারে এবং গুচ্ছ থেকে বাদ পড়ে।
তবে আজকের সার্ভার অ্যাপ্লিকেশনগুলি (ঘন ঘন ফুলফ্র্যাড ফ্রেমওয়ার্কের শীর্ষে নির্মিত ;-)) সহজেই 4 জিবি ছাড়িয়ে অনেক বেশি স্তূপ প্রয়োজন।
এই মেমরির প্রয়োজনীয়তার একটি সমাধান হ'ল বস্তুগুলির অংশগুলি 'অফলোড' নন-জাভা হিপ (সরাসরি ওএস থেকে বরাদ্দ) করা to ভাগ্যক্রমে java.nio 'অব্যবহৃত' মেমরির অংশগুলি (এমনকি মেমরি ম্যাপযুক্ত ফাইলগুলি) সরাসরি বরাদ্দ / পড়ার এবং লেখার জন্য ক্লাস সরবরাহ করে।
সুতরাং কেউ 'অব্যবস্থায়িত' মেমরির বৃহত পরিমাণে বরাদ্দ করতে পারে এবং সেখানে বস্তুগুলি সংরক্ষণ করতে এটি ব্যবহার করতে পারে। অনিয়ন্ত্রিত স্মৃতিতে স্বেচ্ছাচারিত বস্তুকে সংরক্ষণ করার জন্য, সবচেয়ে কার্যকর সমাধান হ'ল সিরিয়ালাইজেশন ব্যবহার। এর অর্থ অ্যাপ্লিকেশনটি অফিপ মেমরিতে অবজেক্টগুলিকে সিরিয়ালাইজ করে, পরবর্তীতে অবজেক্টটি ডিসরিয়ালাইজেশন ব্যবহার করে পড়া যায়।
জাভা ভিএম দ্বারা পরিচালিত হিপ সাইজটি ছোট রাখা যেতে পারে, তাই জিসি বিরতি মিলিতে থাকে, সকলেই খুশি, কাজ শেষ।
এটা স্পষ্ট, যে এই ধরনের একটি হিপ বাফারের কর্মক্ষমতা বেশিরভাগ সিরিয়ালাইজেশন বাস্তবায়নের কর্মক্ষমতা উপর নির্ভর করে। সুসংবাদ: কোনও কারণে এফএসটি-সিরিয়ালাইজেশন বেশ দ্রুত :-)।
নমুনা ব্যবহারের পরিস্থিতি:
সম্পাদনা করুন: কিছু পরিস্থিতির জন্য কেউ আরও বেশি পরিশীলিত আবর্জনা সংগ্রহের অ্যালগরিদম যেমন কনকন্টারমার্কঅ্যান্ডস্বীপ বা জি 1 আরও বড় গাদা সমর্থন করতে পারেন (তবে এটির সীমা 16 গিগাবাইটের স্তূপের বাইরেও রয়েছে) choose উন্নত 'বিরামহীন' জিসি (আজুল) সহ উপলব্ধ একটি বাণিজ্যিক জেভিএমও রয়েছে।
গাদা হ'ল স্মৃতিতে এমন জায়গা যেখানে আপনার গতিশীলভাবে বরাদ্দকৃত বস্তুগুলি বাস করে। আপনি যদি ব্যবহার করেন new
তবে এটি গাদা on এটি স্ট্যাক স্পেসের বিপরীতে, যেখানে ফাংশন স্ট্যাকটি বাস করে। আপনার যদি স্থানীয় ভেরিয়েবল থাকে তবে সেই উল্লেখটি স্ট্যাকের মধ্যে রয়েছে। জাভার গাদা আবর্জনা সংগ্রহের সাপেক্ষে এবং অবজেক্টগুলি সরাসরি ব্যবহারযোগ্য।
EHCache- এর অফ-হিপ স্টোরেজ আপনার নিয়মিত অবজেক্টটিকে হিপ থেকে সরিয়ে নিয়ে যায়, এটি সিরিয়ালাইজ করে এবং এএইচসি পরিচালিত মেমরির একটি অংশে বাইট হিসাবে সংরক্ষণ করে। এটি এটি ডিস্কে সঞ্চয় করার মতো তবে এটি এখনও র্যামে রয়েছে। বস্তুগুলি এই অবস্থায় সরাসরি ব্যবহারযোগ্য নয়, তাদের প্রথমে ডিজিটালাইজড করতে হবে। এছাড়াও আবর্জনা সংগ্রহের বিষয় নয়।
100% নয়; যাইহোক, মনে হচ্ছে হিপ এমন কোনও বস্তু বা বরাদ্দ স্থানের সেট (র্যামে) যা জাভা নিজেই বা এহচেচে থেকে সম্ভবত সম্ভাব্য কার্যকারিতা কোডের কার্যকারিতার মধ্যে তৈরি হয়েছে এবং অফ-হিপ র্যামের নিজস্ব সিস্টেম রয়েছে as আমরা হব; তবে এটি মনে হচ্ছে এটি এক মাত্রার ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে সংগঠিত নয়, যার অর্থ এটি কোনও গাদা (ম্যামের জায়গার দীর্ঘ দীর্ঘ সেট) ব্যবহার করতে পারে না এবং পরিবর্তে ঠিকানার চেয়ে আলাদা স্পেস ব্যবহার করে যা এটি সামান্য কম দক্ষ করে তোলে।
তারপরে অবশ্যই পরবর্তী স্তরটি হার্ড-ড্রাইভের স্থান।
আমি ইচ্ছু ব্যবহার করি না, তাই আপনি আমার উপর বিশ্বাস রাখতে নাও চান, তবে তাদের নথি থেকে আমি কী সংগ্রহ করেছি।