ক্যাশে এবং বাফারের মধ্যে পার্থক্য কী?


12

একটি ক্যাশে বলতে কি একটি বিশেষ ধরণের বাফার সঠিক? তারা উভয়ই একই রকম কার্য সম্পাদন করে তবে আমি অন্তর্ভুক্ত এমন কিছু অন্তর্নিহিত পার্থক্য রয়েছে কি না?


উত্তর:


12

ডেটা বাফার সম্পর্কিত উইকিপিডিয়ায় নিবন্ধ থেকে :

বাফার একটি শারীরিক মেমরি স্টোরেজের এমন একটি অঞ্চল যা অস্থায়ীভাবে ডেটা ধরে রাখার জন্য ব্যবহৃত হয় যখন এটি এক জায়গা থেকে অন্য জায়গায় স্থানান্তরিত হয় while

একটি বাফার প্রতিটি স্টোরের অবস্থান থেকে অন্য স্টোরেজ হিসাবে প্রেরণ করা প্রতিটি একক টুকরো ধরে সাইকেল চালিয়ে ও ধরে রাখে (যেমন অডিও প্রসেসিংয়ে একটি বৃত্তাকার বাফার ব্যবহার করার সময়)। একটি বাফার কেবল এটির অনুমতি দেয় - ডেটা প্রবাহে আপনার বর্তমান অবস্থানের আগে এবং পরে ডেটার একটি "বাফার"।

আসলে, একটি বাফার এবং ক্যাশে কিছু সাধারণ দিক রয়েছে। তবে প্রচলিত অর্থে ক্যাশে সাধারণত স্থান থেকে অন্য জায়গায় স্থানান্তরিত হওয়ার সময় সমস্ত ডেটা সংরক্ষণ করে না (যেমন সিপিইউ ক্যাশে)।

ক্যাশের উদ্দেশ্য হ'ল তথ্যগুলি স্বচ্ছ উপায়ে সংরক্ষণ করা, যেমন পর্যাপ্ত পরিমাণে ডেটা ক্যাশে করা হয় যাতে বাকী ডেটা কোনও পারফরম্যান্স জরিমানা ছাড়াই স্থানান্তর করা যায়। এই প্রসঙ্গে, ক্যাশে কেবলমাত্র অল্প পরিমাণে ডেটা "প্রাক-সংগ্রহ" করে (ট্রান্সফার রেট, ক্যাশে আকারের উপর নির্ভর করে ... ইত্যাদি)।

মূল পার্থক্য হ'ল একটি বাফার শেষ পর্যন্ত সমস্ত ডেটা ধরে রাখবে। বিপরীতভাবে, একটি ক্যাশে সমস্ত, কিছু, বা কোনও ডেটা (নকশার উপর নির্ভর করে) ধরে থাকতে পারে। যাইহোক, একটি ক্যাশে অ্যাক্সেস করা হয় যেন আপনি সরাসরি প্রথম স্থানে ডেটা অ্যাক্সেস করে যাচ্ছেন - যা সঠিকভাবে ক্যাশেড হয় সেটি ক্যাশের "ব্যবহারকারী" এর কাছে স্বচ্ছ।


পার্থক্যটি ইন্টারফেসে রয়েছে । আপনি যদি একটি তথ্য উৎস অ্যাক্সেস করতে একটি ক্যাশে ব্যবহার করছেন, তখন আপনি যদি ক্যাশে হিসাবে ব্যবহার হয় তথ্য উৎস - আপনি ক্যাশে মাধ্যমে ডাটা উৎসের প্রতিটি অংশ অ্যাক্সেস করতে পারেন, এবং ক্যাশে নির্ধারণ করবে যেখানে তথ্য থেকে (আসে ক্যাশে নিজেই, বা উত্স)। ক্যাশে নিজেই ডেটাটির কোন অংশগুলি প্রিলোড করতে হবে তা নির্ধারণ করে (সাধারণত কেবল শুরু, তবে কখনও কখনও সবগুলি), যখন ক্যাশে থেকে প্রতিস্থাপন অ্যালগরিদম নির্ধারণ করে যে কী / কখন জিনিসগুলি ক্যাশে থেকে সরানো হয়। এই সেরা উদাহরণ থেকে একটি সিস্টেম, সরাইয়া ক্যাশে CPU- র নিজেই হল prefetcher / readahead। উভয়ই ডেটার অংশগুলি লোড করে যা তারা মনে করে যে আপনি মেমরির মধ্যে সর্বাধিক ব্যবহার করবেন এবং কোনও কিছু ক্যাশে না হলে হার্ড ড্রাইভে ফিরে যান।

বিপরীতে, একটি বাফার তাত্ক্ষণিকভাবে আপনার অবস্থানটি ডেটা স্ট্রিমে স্থানান্তর করতে ব্যবহার করা যাবে না, যদি না নতুন অংশটি ইতিমধ্যে বাফারে স্থানান্তরিত না হয়। এটি করার জন্য বাফারটিকে স্থানান্তরিত করতে হবে (নতুন অবস্থানটি বাফার দৈর্ঘ্য ছাড়িয়ে গেছে) কার্যকরভাবে আপনাকে নতুন স্থান থেকে বাফারটি "পুনরায় চালু" করতে হবে। এর সেরা উদাহরণটি ইউটিউব ভিডিওতে স্লাইডারটি সরানো moving

বাফারের আরও একটি ভাল উদাহরণ উইন্যাম্পে অডিও ফিরে খেলছে। যেহেতু অডিও ফাইলগুলি সিপিইউ দ্বারা ডিকোড করা দরকার, গানটি পড়ার সময়, অডিওটি কখন প্রসেস হয়, আপনার সাউন্ড কার্ডে কখন প্রেরণ করা হয় তার মধ্যে কিছুটা সময় লাগে। উইন্যাম্প কিছু অডিও ডেটা বাফার করবে, যাতে কোনও "লক-আপ" এড়াতে ইতিমধ্যে প্রক্রিয়াজাত পর্যাপ্ত অডিও ডেটা রয়েছে (যেমন সিপিইউ সর্বদা কয়েকশ মিলি সেকেন্ডে শুনতে পাবেন অডিওটি প্রস্তুত করে রাখে, এটি কখনই আসল-সময় নয় ; আপনি যা শুনছেন তা বাফার থেকে আসে, যা সিপিইউ অতীতে প্রস্তুত করেছিল)।


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

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

2
tl; dr version: আপনি যদি যত তাড়াতাড়ি সম্ভব ডেটা বের করতে চান তবে এটি একটি বাফার। যদি আপনি যতক্ষণ সম্ভব ডেটা এতে রাখতে চান তবে এটি একটি ক্যাশে।
ডেভিড শোয়ার্জ

10

এটি বলা আরও সঠিক হবে যে ক্যাশে একটি বাফারের একটি নির্দিষ্ট ব্যবহারের ধরণ যা একই ডেটার একাধিক ব্যবহারকে বোঝায়। "বাফার" এর বেশিরভাগ ব্যবহার বোঝায় যে একক ব্যবহারের পরে ডেটা নিষ্কাশন করা বা ফেলে দেওয়া হবে (যদিও এটি প্রয়োজনীয়ভাবে নয়), "ক্যাশে" বোঝায় যে ডেটা একাধিকবার পুনরায় ব্যবহার করা হবে। ক্যাচিংয়ের সাহায্যে প্রায়শই বোঝানো হয় যে ডেটা সংরক্ষণ করা হয় কারণ এটি একইসাথে ব্যবহৃত হয়, যদিও এটি প্রয়োজনীয়ভাবে হয় না (যেমন প্রাক-আনয়ন এবং এর মতো), যদিও বাফারিং থেকে বোঝা যায় যে ডেটা পরবর্তী ব্যবহারের জন্য সংরক্ষণ করা হচ্ছে।

বাস্তবায়ন এবং ব্যবহার উভয় ক্ষেত্রে অবশ্যই একটি বৃহত ওভারল্যাপ রয়েছে।


3

ক্যাশে এবং বাফারের মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য:

বাফার প্রাথমিক স্মৃতির একটি অংশ। এগুলি প্রাথমিক মেমরি (র‌্যাম) থেকে উপস্থিত এবং অ্যাক্সেস করা কাঠামো।

অন্যদিকে, ক্যাশে কম্পিউটারের মেমোরি শ্রেণিবদ্ধের একটি পৃথক শারীরিক মেমরি।

বাফারকে কখনও কখনও বলা হয় - বাফার ক্যাশে। এই নামটি জোর দিয়েছিল যে বাফার ব্যবহার ক্যাশে যেমন অর্থাত ডেটা সংরক্ষণ করার অনুরূপ to পার্থক্যটি এর ব্যবহারের প্রসঙ্গে।

অস্থায়ীভাবে ডেটা সংরক্ষণের জন্য বাফারগুলি ব্যবহার করা হয়, যখন ডেটাটি একটি বস্তু থেকে অন্য বস্তুর দিকে সরানো হয়। EX: যখন কোনও ভিডিও ইন্টারনেট থেকে আমাদের পিসিতে প্রদর্শিত হয় বাফারগুলির জন্য ভিডিওটির ফ্রেমগুলি সংরক্ষণ করতে ব্যবহৃত হয় যা পরবর্তী প্রদর্শিত হবে। (এই QoS বৃদ্ধি, ভিডিও হিসাবে খুব সহজেই একটি সফল সাফল্যের প্রক্রিয়া পরে চালানো হবে।) উদাহরণস্বরূপ: আমরা উদাহরণস্বরূপ যখন আমাদের ফাইলগুলিতে ডেটা লিখি তখন এর অন্য উদাহরণটি। নতুন লিখিত তথ্য তাত্ক্ষণিকভাবে দ্বিতীয় স্মৃতিতে অনুলিপি করা হয় না। করা পরিবর্তনগুলি বাফারে সংরক্ষণ করা হয় এবং তারপরে ডিজাইন করা নীতি অনুসারে, পরিবর্তনগুলি ফাইন্ডারে সেকেন্ডারি মেমোরিতে (হার্ড ডিস্ক) প্রতিফলিত হয়।

অন্যদিকে ক্যাচগুলি প্রাথমিক মেমোরি এবং প্রসেসরের মধ্যে ব্যবহৃত হয়, র‌্যাম এবং প্রসেসরের প্রয়োগের গতির মধ্যে ব্যবধান পূরণ করতে। এছাড়াও র‌্যামের অ্যাক্সেস হ্রাস করতে সবচেয়ে ঘন ঘন অ্যাক্সেস করা ডেটা ক্যাশে সঞ্চিত থাকে।


-1 আপনি লিখছেন "ক্যাশে একটি পৃথক শারীরিক স্মৃতি" <--- না। অগত্যা নয়। আইই এইচডিডি তে ক্যাশে সঞ্চয় করে এবং কোনও সন্দেহ নেই যে এটি এটিকে র‌্যাম স্ট্যাকওভারফ্লো / কোয়েশনস / 854412/ … এ লোড করে I সেই ক্যাশে যা রাখা হয় তা হ'ল নিম্ন স্তরের জিনিস, সম্ভবত কেবল ওএস নির্দিষ্ট করতে পারে। র‌্যামে থাকা সত্ত্বেও এটি এখনও ক্যাশে বলা হয়। এবং ওয়েব সার্ভার স্কুইড একটি ক্যাশে সেট আপ করতে পারে, ভৌত ক্যাশে মেমরির মধ্যে এমনটি বা এটি হওয়া দরকার বলে মনে করার কোনও কারণ নেই।
বার্লপ

ক্যাচিং একটি ফাংশন, এটি বিশেষ স্মৃতিতে থাকতে হবে না
বার্লপ

1

সাধারণ জিনিস: উভয়ই গণনা এবং "প্রধান" স্টোরেজের মধ্যে মধ্যস্থতাকারী ডেটা স্টোরেজ উপাদান (সফ্টওয়্যার বা হার্ডওয়্যার)।

আমার কাছে পার্থক্যটি নিম্নলিখিত:

বাফার:

  • ডেটাতে অনুক্রমিক অ্যাক্সেস পরিচালনা করে (যেমন ফাইল বা সকেট থেকে ডেটা পড়া / লেখার)
  • সক্ষম করে গণনার এবং প্রধান স্টোরেজ, মধ্যে ইন্টারফেসের রূপান্তর একে অপরের একটি ডাটা প্রযোজক বিভিন্ন ডাটা ট্রান্সফার নিদর্শন এবং একটি ডাটা ভোক্তা করতে। উদাহরণস্বরূপ গণনা ডেটা ছোট অংশ লিখেছেন, কিন্তু ডিস্ক ড্রাইভ নির্দিষ্ট আকারের ডেটা কেবলমাত্র টুকরো গ্রহণ করতে পারে। সুতরাং বাফারটি ইনপুট হিসাবে ছোট ছোট টুকরোগুলি সংগ্রহ করে এবং আউটপুটের বড় টুকরোগুলিতে পুনরায় গোষ্ঠীভূত করে।
  • সুতরাং এটি অ্যাডাপ্টার ডিজাইনের প্যাটার্নের মতো। এটি দুটি ইন্টারঅ্যাক্টিং উপাদানগুলির সাথে যোগ দেয় যা সরাসরি আন্তঃসংযোগ করতে পারে না।
  • উদাহরণস্বরূপ: ডিস্ক বাফার, জাভা ভাষায় বাফার্ডরিডার, কম্পিউটার গ্রাফিক্সে ডফারিং।

ক্যাশে:

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