সর্বোত্তম বাফার আকারটি কয়েকটি জিনিসের সাথে সম্পর্কিত: ফাইল সিস্টেম ব্লক আকার, সিপিইউ ক্যাশে আকার এবং ক্যাশে বিলম্ব।
বেশিরভাগ ফাইল সিস্টেমগুলি 4096 বা 8192 এর ব্লক আকারগুলি ব্যবহার করার জন্য কনফিগার করা হয় theory আপনার বাফারটি একবারে 4100 বাইট পড়ার জন্য কনফিগার করেছেন, প্রতিটি পঠনের জন্য ফাইল সিস্টেমের দ্বারা 2 টি ব্লক রিডের প্রয়োজন হবে)। যদি ব্লকগুলি ইতিমধ্যে ক্যাশে থাকে তবে আপনি র্যাম -> এল 3 / এল 2 ক্যাশে বিলম্বের মূল্য প্রদান করে শেষ করবেন না। আপনি যদি দুর্ভাগ্য হন এবং ব্লকগুলি এখনও ক্যাশে না থাকে তবে আপনি ডিস্ক-> র্যামের ল্যাটেন্সিরও মূল্য প্রদান করেন।
এজন্য আপনি দেখতে পান যে বেশিরভাগ বাফারগুলি 2 পাওয়ার হিসাবে আকারযুক্ত হয় এবং সাধারণত ডিস্ক ব্লক আকারের (বা সমান) এর চেয়ে বড়। এর অর্থ হ'ল আপনার স্ট্রিমের একটির পড়ার ফলে একাধিক ডিস্ক ব্লক পঠন হতে পারে - তবে এই পাঠাগুলি সর্বদা একটি সম্পূর্ণ ব্লক ব্যবহার করবে - কোনও অপচয় নেই।
এখন, এটি একটি সাধারণ স্ট্রিমিং দৃশ্যে বেশ খানিকটা অফসেট হয়েছে কারণ আপনি যখন পরবর্তী পড়তে পড়েন তখন ডিস্ক থেকে পড়া ব্লকটি এখনও স্মৃতিতে থাকবে (আমরা এখানে যথাক্রমে পড়ছি, সর্বোপরি) - সুতরাং আপনি আপ শেষ করবেন না পরবর্তী পড়তে র্যাম -> এল 3 / এল 2 ক্যাশে লেটেন্সি দাম প্রদান করা হচ্ছে, তবে ডিস্ক-> র্যামের বিলম্ব নেই। প্রস্থের ক্রমের দিক থেকে, ডিস্ক-> র্যামের ল্যাটেন্সিটি এত ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে you
সুতরাং, আমি সন্দেহ করি যে আপনি যদি বিভিন্ন ক্যাশে আকারের পরীক্ষা করে থাকেন (নিজে নিজে এটি করেন নি) তবে আপনি সম্ভবত ফাইল সিস্টেমের ব্লকের আকার পর্যন্ত ক্যাশে আকারের একটি বড় প্রভাব খুঁজে পাবেন। তার উপরে, আমার সন্দেহ হয় যে জিনিসগুলি খুব দ্রুত স্তরে বেরিয়ে আসবে।
একটা হয় টন অবস্থার এবং ব্যতিক্রম এখানে - সিস্টেম জটিলতার আসলে বেশ টলটলায়মান হয় (ঠিক L3 উপর একটি হ্যান্ডল পেয়ে -> ও L2 ক্যাশ স্থানান্তর মন bogglingly জটিল, এবং এটা প্রতি CPU- র ধরনের সঙ্গে পরিবর্তন)।
এটি 'রিয়েল ওয়ার্ল্ড' জবাব দেয়: যদি আপনার অ্যাপ্লিকেশনটি এখানে 99% এর মতো হয় তবে ক্যাশের আকার 8192 এ সেট করুন এবং এগিয়ে যান (আরও ভাল, পারফরম্যান্সের উপরে এনক্যাপসুলেশন চয়ন করুন এবং বিশদটি আড়াল করতে বাফারডিনপুট স্ট্রিম ব্যবহার করুন)। আপনি যদি ডিস্ক থ্রুপুটের উপর নির্ভরশীল অ্যাপগুলির 1% এর মধ্যে থাকেন তবে আপনার প্রয়োগটি নৈপুণ্য তৈরি করুন যাতে আপনি বিভিন্ন ডিস্কের ইন্টারঅ্যাকশন কৌশল পরিবর্তন করতে পারেন এবং আপনার ব্যবহারকারীদের পরীক্ষা ও অনুকূলিতকরণের অনুমতি দেওয়ার জন্য নকশ এবং ডায়াল সরবরাহ করতে পারেন (বা কিছু নিয়ে আসতে পারেন) স্ব অপ্টিমাইজিং সিস্টেম)।