সিপি তুলনায় তারার কেন এত বেশি দ্রুত?


10

পুনরাবৃত্তভাবে একটি ডিরেক্টরি অনুলিপি করার জন্য, ডিরেক্টরি প্যাকআপ tarকরতে ব্যবহার করে tarএবং অন্যটিকে আনপ্যাক করে আউটপুটটি পাইপ করা cp -r(বা cp -a) ব্যবহার করার চেয়ে অনেক দ্রুত বলে মনে হয় ।

কেন? এবং কেন cpএটি হুডের নীচে একইভাবে করে দ্রুত করা যায় না?

সম্পাদনা করুন: লক্ষ লক্ষ ফাইল এবং ফোল্ডার সমন্বিত একটি বিশাল ডিরেক্টরি কাঠামো অনুলিপি করার চেষ্টা করার সময় আমি এই পার্থক্যটি লক্ষ্য করেছি, তবে কেবলমাত্র প্রায় 50MB ing এটি প্রাসঙ্গিক কিনা তা নিশ্চিত নয়।


এটি একটি আকর্ষণীয় প্রশ্ন। আপনি কিছু উত্তর এখানে পেতে পারেন: stackoverflow.com/questions/316078 এবং এখানে: unix.stackexchange.com/questions/66647
তেরেসা ই জুনিয়র

উত্তর:


6

Cpসমস্ত ফাইলের উপর একটি লুপে ওপেন-রিড-ক্লোজ-ওপেন-রাইটিং-ক্লোজ করে। সুতরাং এক জায়গা থেকে পড়া এবং অন্য জায়গায় লেখার বিষয়টি পুরোপুরি আন্তঃলিবিভক্ত হয়। Tar|tarপৃথক প্রক্রিয়াগুলিতে পড়া এবং লেখার কাজ করে এবং এর tarসাথে 'একসাথে' বেশ কয়েকটি ফাইল পড়ার (এবং লেখার) জন্য একাধিক থ্রেড ব্যবহার করে, কার্যকরভাবে ডিস্ক নিয়ন্ত্রণকারীকে একবারে অনেকগুলি ব্লকের ডেটা আনার, বাফার এবং সংরক্ষণের অনুমতি দেয়। সব মিলিয়ে, tarপ্রতিটি উপাদানকে দক্ষতার সাথে কাজ করার অনুমতি দেয়, যখন cpবৈষম্যহীন সমস্যা অকার্যকর করে তোলে, অকার্যকরভাবে ছোট ছোট অংশগুলি।


আমরা কি সব cpবাস্তবায়নের সত্য বলতে পারি ? আমরা কীভাবে জানি যে এটি সত্য? এবং কেন এমন cpঅদক্ষভাবে লেখা হবে ? ফাইল কপির যে কোনও পাঠ্যপুস্তক বাস্তবায়নের সময় একবারে এন বাইটের একটি বাফার পড়ে এবং অন্য এন বাইটগুলি পড়ার আগে সেগুলি ডিস্কে লিখে দেয়। তবে আপনি বলছেন cpপুরো কপিটি লেখার আগে পুরো ফাইলটি সর্বদা পড়ে?
লার্শ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.