জিপ কেন একই বিষয়বস্তু সহ একাধিক ফাইলের চেয়ে ছোট ফাইল সংক্ষেপণ করতে সক্ষম?


126

মনে করুন যে আমার কাছে 10,000 টি এক্সএমএল ফাইল রয়েছে। এখন ধরুন আমি তাদের একটি বন্ধুর কাছে প্রেরণ করতে চাই। তাদের প্রেরণের আগে, আমি তাদের সংকোচন করতে চাই।

পদ্ধতি 1: এগুলি সংকুচিত করবেন না

ফলাফল:

Resulting Size: 62 MB
Percent of initial size: 100%

পদ্ধতি 2: প্রতিটি ফাইল জিপ করুন এবং তাকে 10,000 এক্সএমএল ফাইল প্রেরণ করুন

COMMAND:

for x in $(ls -1) ;  do   echo $x ; zip "$x.zip" $x ; done

ফলাফল:

Resulting Size: 13 MB
Percent of initial size: 20%

পদ্ধতি 3: 10,000 এক্সএমএল ফাইলযুক্ত একক জিপ তৈরি করুন

COMMAND:

zip all.zip $(ls -1)

ফলাফল:

Resulting Size: 12 MB
Percent of initial size: 19%

পদ্ধতি 4: একক ফাইলগুলিতে ফাইলগুলিকে সংযুক্ত করুন এবং এটি জিপ করুন

COMMAND:

cat *.xml > oneFile.txt ; zip oneFile.zip oneFile.txt

ফলাফল:

Resulting Size: 2 MB
Percent of initial size: 3%

প্রশ্নাবলী:

  • আমি যখন কেবল একটি একক ফাইল জিপ করছি তখন কেন আমি এই ধরনের নাটকীয়ভাবে আরও ভাল ফলাফল পেতে পারি?
  • আমি পদ্ধতি 2 এর চেয়ে 3 পদ্ধতি ব্যবহার করে মারাত্মকভাবে আরও ভাল ফলাফলের প্রত্যাশা করছিলাম, তবে তা করি না। কেন?
  • এই আচরণ কি নির্দিষ্ট zip? আমি যদি চেষ্টা করে gzipদেখি তবে আমি কী আলাদা ফলাফল পেতে পারি?

অতিরিক্ত তথ্য:

$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.

Compiled with gcc 4.4.4 20100525 (Red Hat 4.4.4-5) for Unix (Linux ELF) on Nov 11 2010.

Zip special compilation options:
    USE_EF_UT_TIME       (store Universal Time)
    SYMLINK_SUPPORT      (symbolic links supported)
    LARGE_FILE_SUPPORT   (can read and write large files on file system)
    ZIP64_SUPPORT        (use Zip64 to store large files in archives)
    UNICODE_SUPPORT      (store and read UTF-8 Unicode paths)
    STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
    UIDGID_NOT_16BIT     (old Unix 16-bit UID/GID extra field not used)
    [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)

সম্পাদনা করুন: মেটা ডেটা

একটি উত্তর প্রস্তাব দেয় যে পার্থক্যটি হ'ল জিপটিতে সঞ্চিত সিস্টেম মেটা ডেটা। আমি মনে করি না যে এটি হতে পারে। পরীক্ষা করার জন্য, আমি নিম্নলিখিতগুলি করেছি:

for x in $(seq 10000) ; do touch $x ; done
zip allZip $(ls -1)

ফলস্বরূপ জিপটি 1.4MB। এর অর্থ হ'ল এখনও ~ 10 এমবি অব্যক্ত স্থান নেই।


34
যদি আমি ভুল না হয়ে থাকি তবে এটি এই ফেনোমোনা যা লোককে .tar.gzপুরো ডিরেক্টরিটি জিপ করার বিরোধিতা করে।
কর্সিকা

18
ইতিমধ্যে একটি অনুরূপ প্রশ্ন জিজ্ঞাসা করা হয়েছিল, tl; Dr solid 7zip সংরক্ষণাগারগুলি ব্যবহার করুন।
দিমিত্রি গ্রিগরিয়েভ

3
@sixtyfootersdude উত্তরগুলির কিছুটি যাচাই করার জন্য একটি পরীক্ষা হিসাবে, আপনি পদ্ধতি 3 তে উত্পাদিত জিপটি জিপ করার চেষ্টা করতে পারেন? আমার সন্দেহ হয় এটি ফাইলের আকার 4 পদ্ধতির 4 এর সাথে তুলনামূলক কিছুতে কমিয়ে দেবে
ট্র্যাভিস

7
পরিবর্তে $(ls -1), শুধু ব্যবহার *: for x in *; zip all.zip *
মুরু

4
আপনি জিপ সঙ্গে কঠিন কম্প্রেশন কাজ করতে চান, তাহলে এখানে একটি ওয়ার্কঅ্যারাউন্ড আছে: প্রথম, একটি তৈরি ডিকম্প্রেস আপনার সমস্ত ফাইল ধারণকারী জিপ। তারপরে, সেই জিপটিকে অন্য সংকুচিত জিপের ভিতরে রাখুন।
ব্যবহারকারী 20574

উত্তর:


129

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

একারণে যখন সামগ্রী একাধিক ফাইলে থাকে তখন সেখানে অতিরিক্ত অতিরিক্ত স্থান থাকে: এটি একই সংকোচিত স্ট্রিমটি একাধিকবার ফাইলে রাখে।


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

28
@ জ্যাব: 7z এবং rar এর মতো সংকোচনের সরঞ্জামগুলি বড় আকারের সংক্ষেপণের প্রবাহগুলিতে একাধিক ফাইল প্যাক করার জন্য "সলিড" সংরক্ষণাগার শব্দটি ব্যবহার করে। M৪ এমআইবির মতো একটি মাঝারি অংশের আকারের সাথে, কোনও একক ফাইলে এলোমেলো অ্যাক্সেসের জন্য এটির মধ্যে থাকা সংক্ষেপণ ব্লকটি শুরু হতে M৪MiB অবধি ডেটা কমপ্রেসিংয়ের প্রয়োজন হতে পারে rand 7z আরও কার্যকর (তবে সংক্ষেপণের জন্য ধীর) LZMA সংক্ষেপণ স্কিম ব্যবহার করতে পারে যা জিপের চেয়ে আরও একটি সুবিধা।
পিটার কর্ডেস

আপনি কি বলছেন যে there is no support in Zip to find redundancy between filesজিপ ফাইলের নির্দিষ্টকরণে রয়েছে?
ষাট ফুটারসুডে

6
@sixtyfootersdude অনেক সংক্ষেপণ অ্যালগরিদম, যেমন ডিফল্ট, প্রবাহ হিসাবে কাজ করে। স্ট্রিমের কোনও অংশকে সংক্রামিত করতে পর্যাপ্ত তথ্য পুনরুদ্ধার করতে, আপনাকে সেই বিন্দু পর্যন্ত পুরো স্ট্রিমটি প্রক্রিয়া করতে হবে। যদি তারা ফাইলগুলির মধ্যে অপ্রয়োজনীয়তা সন্ধান করার চেষ্টা করে থাকে তবে শেষেরটিতে যাওয়ার জন্য আপনাকে সমস্ত 1000 ফাইলগুলি সংক্ষেপিত করতে হবে। এটি সাধারণত tgz কীভাবে কাজ করে। যাইহোক, জিপটি আপনাকে পৃথক ফাইলগুলি এক্সট্রাক্ট করার জন্য ডিজাইন করা হয়েছিল। tgz আরও বেশি কিছু-না-হতে ডিজাইন করা হয়েছে
কর্ট অ্যামোন

1
@ sixtyfootersdude - এটি সঠিক। প্যারাফ্রেজ কর্ট করতে: pkzip স্পেস কাজ করে ক্রস ফাইল সমর্থন করে না। যদি তারা তা করে থাকে তবে একটি ফাইল উত্তোলনের জন্য পুরো সংরক্ষণাগার (এবং প্রতিটি ফাইল) বের করার প্রয়োজন হতে পারে।
জেমস স্টেল

48

জিপ সংকোচনের ফলে ডেটা সংকুচিত হওয়ার জন্য পুনরাবৃত্ত নিদর্শনগুলির উপর ভিত্তি করে তৈরি করা হয় এবং ফাইলটি যত বেশি দীর্ঘায়িত হয় তত বেশি সংখ্যক নিদর্শনগুলি খুঁজে পাওয়া ও ব্যবহার করা যায় বলে সংক্ষেপণ আরও ভাল হয়।

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

যদি আপনার ফাইলগুলি আরও কিছুটা সমান হয় (যেমন পাঠ্য সর্বদা থাকে), তবে 'অভিধান' এর পুনরায় ব্যবহার খুব দক্ষ হয়ে ওঠে এবং ফলাফলটি আরও অনেক ছোট মোট জিপ।


3
জিপ সংরক্ষণাগার এবং সংক্ষিপ্তকরণ উভয়ই করে। এর অর্থ কি এই যে জিপ প্রতিটি ফাইল পৃথকভাবে সংকুচিত করে, সেগুলি সমস্ত একই জিপ-ফাইলে শেষ হলেও?
অঙ্কিত

2
এ জাতীয় ধরণের দরকার আছে - কল্পনা করুন যে আপনি একটি ফাইল মুছে ফেলেছেন, আপনি চাইবেন না যে এটি আরও একটি নতুন 'অভিধান' দিয়ে বাকীটিকে আবার সংকুচিত করতে আরও আধ ঘন্টা ব্যয় করবে। - এছাড়াও, এটি সম্ভবত ধরে নিয়েছে যে বিভিন্ন ফাইলগুলির খুব আলাদা 'অভিধান' প্রয়োজন।
আগানজু

2
কেন আছে তা আমি দেখতে পাচ্ছি না। ইউনিক্স সরঞ্জামগুলির সাহায্যে আমি প্রথমে একটি ফাইল ট্যারের সাথে সংরক্ষণাগারভুক্ত করে তারপরে gzip / bz2 / lzma দিয়ে সংকুচিত করতাম। সংরক্ষণাগারটিতে কতগুলি ফাইল এনকোড করা হয়েছে তা সংক্ষেপণ অ্যালগরিদম বিবেচ্য নয়। এছাড়াও, সংক্ষেপিত সংরক্ষণাগার থেকে কোনও একক ফাইল সরানো সত্যিই কত সাধারণ? আমি মনে করি না যে আমি কখনও এটি করেছি।
অঙ্কিত

4
আমি দ্বিমত পোষণ করি না, এবং এটি সম্ভবত একটি ভাল উপায়। আমি জিপ ডিজাইন বা লিখিনি didn't আমি যা করেছি তা কেবল বলেছি ...
আগুনজু

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

43

জিপতে প্রতিটি ফাইল পৃথকভাবে সংকুচিত হয়। বিপরীতটি হল 'কঠিন সংকোচনের', এটি হ'ল ফাইলগুলি একসাথে সংকুচিত হয়। 7-জিপ এবং রার ডিফল্টরূপে শক্ত সংকোচনের ব্যবহার করে। Gzip এবং Bzip2 একাধিক ফাইল সংকুচিত করতে পারে না তাই তারার প্রথমে শক্ত সংকোচনের মতো একই প্রভাব ফেলে is

যেহেতু এক্সএমএল ফাইলের কাঠামোগুলি একই রকম এবং সম্ভবত অনুরূপ সামগ্রী রয়েছে যদি ফাইলগুলি একসাথে সংকুচিত হয় তবে কমপ্রেসন আরও বেশি হবে।

উদাহরণস্বরূপ, যদি কোনও ফাইলটিতে স্ট্রিং থাকে "<content><element name="এবং কমপ্রেসর ইতিমধ্যে অন্য ফাইলটিতে স্ট্রিংটি খুঁজে পেয়েছে তবে এটি আগের ম্যাচের একটি ছোট পয়েন্টার দিয়ে এটি প্রতিস্থাপন করবে, যদি সংক্ষেপক যদি 'সলিড সংক্ষেপণ' স্ট্রিংয়ের প্রথম অরণ্য ব্যবহার না করে থাকে আক্ষরিক হিসাবে ফাইলটি বড় হবে যা রেকর্ড করা হবে।


9

জিপ কেবল ফাইলের বিষয়বস্তু সংরক্ষণ করে না, এটি নিজস্ব ব্যবহারকারীর আইডি, অনুমতি, তৈরি এবং পরিবর্তনের সময় ইত্যাদির মতো ফাইল মেটাডেটাও সঞ্চয় করে। আপনার যদি একটি ফাইল থাকে তবে আপনার এক সেট মেটাডেটা রয়েছে; আপনার যদি 10,000 টি ফাইল থাকে তবে আপনার 10,000 সেট মেটাডেটা রয়েছে।


3
ভাল পয়েন্ট, তবে সিস্টেম মেটা ডেটা মাত্র 1.4MB স্থান গ্রহণ করছে। আমার সম্পাদনা দেখুন।
ষাট ফুটারসুডে

1
আমি জিপ অ্যালগরিদমের সাথে পরিচিত নই, তবে মেটাডেটা কেবল ফাইলের তথ্য নয়, আকার এবং অভিধানের মতো জিনিসও সম্ভবত অক্ষরের বন্টন সম্পর্কিত কিছু তথ্য। একটি খালি শিরোনাম পাঠ্য ফাইলের একটি অভিধান শূন্য নয়। সম্ভবত এই কারণেই আপনি দেখছেন যে মেটাটাটা আপনার খালি ফাইলগুলির চেয়ে আপনার এক্সএমএল ফাইলের চেয়ে বড় larger
বেন রিচার্ডস

এটা আমার প্রথম চিন্তা ছিল। জিপ-ফাইল শিরোনাম সম্পর্কিত তথ্য
WernerCD

এটি কেবল 2 এবং 3 - 4 এর মধ্যে পার্থক্য ব্যাখ্যা করে
লুয়ান

@ লুয়ান নং, 2 এবং 3 উভয় মধ্যে 10,000 টি ফাইলের মেটাডেটা জিপ ফাইল বা ফাইলগুলিতে অন্তর্ভুক্ত রয়েছে, সুতরাং মোট ফাইলের আকার প্রায় একই আকার। 4-তে কেবল একটি ফাইলের মেটাডেটা রয়েছে এবং জিপ ফাইলটি আরও ছোট।
মাইক স্কট 12

7

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

উইন্ডোতে তার পরিবারকে বাড়ানোর জন্য 7-জিপের মতো ফ্রি সরঞ্জামগুলির সর্বব্যাপীতার সাথে, লিনাক্স, ওএস এক্স, এবং বিএসডি সমস্ত হিসাবে একটি .tar.gz বা .tar.bz, ইত্যাদি ব্যবহার না করার সত্যিই কারণ নেই all তাদের ব্যবহারের জন্য দেশীয় সরঞ্জাম।


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

@ রেক্যান্ডবোনম্যান: আপনি সংকোচনের সময় আপনি যে পরিমাণ মেমরি ব্যবহার করতে ইচ্ছুক তার চেয়ে বড় ফাইলগুলি সংকুচিত করার সময় আপনার এই ট্রেড অফ করতে হবে। (এবং কিছু বিশ্বব্যাপী অনুকূল এটি করা প্রয়োজন CPU- র সময় পরিমাণ বিশাল হতে হবে।) একটি বিশাল কম্প্রেশন অভিধান এছাড়াও মেমরির জন্য প্রয়োজনীয় বৃদ্ধি করতে পারেন decompression । এটি এলজেডএমএ ( xz/ 7-জিপ) এর জন্য একটি বিকল্প । যাইহোক, অভিযোজিত অভিধানগুলি একবারে দৃশ্যমান হয়ে গেলে নিদর্শনগুলিতে নিতে পারে। এটি পছন্দ করে না যে এটি প্রথম 32 কে-এর উপর ভিত্তি করে কেবল একটি স্ট্যাটিক কোডিং সিস্টেম তৈরি করে। এই কারণেই জিজিপ চুষে না।
পিটার কর্ডেস

আপনার জিপ ফর্ম্যাটের সাথে থাকার প্রয়োজন হলে আমি এই "কৌশল" সত্যিই পছন্দ করি। আমি আপনার "7-জিপ ব্যবহার না করার কোনও কারণ নেই" এর সাথে একমত নই - যদি আমি একটি প্রযুক্তিবিহীন বন্ধুর কাছে একটি ফাইল পাঠাচ্ছি তবে আমি নিশ্চিত হতে চাই যে তারা এটি সহজেই খুলতে সক্ষম হবে। আমি যদি কোনও ব্যবসায়-ক্লায়েন্টকে পাঠাচ্ছি, আরও বেশি।
Wowfunhappy

5

জিপ সংকোচনের বিন্যাস প্রতিটি ফাইল পৃথকভাবে সঞ্চয় করে এবং সংক্ষেপ করে। এটি কেবলমাত্র একটি ফাইলের মধ্যেই ফাইলগুলির মধ্যে পুনরাবৃত্তির সুবিধা গ্রহণ করে না।

ফাইলটিকে কনটেনেট করা জিপকে সমস্ত ফাইলগুলিতে পুনরাবৃত্তির সুবিধা নিতে দেয়, ফলে মারাত্মকভাবে আরও বেশি সংকোচন ঘটে।

উদাহরণস্বরূপ, বলুন যে প্রতিটি এক্সএমএল ফাইলের একটি নির্দিষ্ট শিরোনাম থাকে। এই শিরোনামটি প্রতিটি ফাইলে কেবল একবার উপস্থিত হয় তবে প্রায় একই রকমভাবে পুনরায় পুনরায় পুনরায় পুনরুদ্ধার করা হয় many পদ্ধতিগুলিতে 2 এবং 3 জিপ এর জন্য কমপ্রেস করতে পারেনি তবে 4 পদ্ধতিতে এটি পারে।


3
ইতিমধ্যে 5 ঘন্টা আগে পোস্ট করা শীর্ষ 3 জবাবগুলির মধ্যে এটির থেকে আলাদা কীভাবে?
Xen2050

1
@ Xen2050 খুব বেশি পার্থক্য নয়, আমি কেবল ভেবেছিলাম আমি এটি আরও পরিষ্কারভাবে ব্যাখ্যা করতে পারি।
বনসাইওক

1
@ বনসাইওক - তারপরে সঠিক উত্তরে একটি মন্তব্য যুক্ত করুন বা আপনার পর্যাপ্ত প্রতিনিধি থাকলে সম্পাদনা করুন। যদি তা না হয় তবে আপনার মন্তব্যটি স্পষ্টতা যুক্ত করে, অন্য কেউ এটি বেছে নিতে এবং পোস্টটি যেভাবেই সম্পাদনা করতে পারে।
আদমভি

@ অ্যাডামভি আমি আপনার বক্তব্যটি দেখতে পাচ্ছি। আমার উত্তরটি বর্তমানে কোনও দরকারী তথ্য যুক্ত করে না, যদিও এটি লেখার সময় এটি যুক্তিযুক্তভাবে হয়েছিল। প্রথম উত্তরের অধীনে ইতিমধ্যে যথাযথ মন্তব্য রয়েছে সুতরাং আমি সেগুলি যুক্ত করার বিন্দুটি দেখতে পাচ্ছি না। আপনি কি বলছেন যে আমার উত্তরটি বন্ধ করা উচিত? এটি খোলা রেখে কী ক্ষতি?
বনসাইওক

4

মেটাডাটার পাশে মাইক স্কট উল্লেখ করেছেন যে সংক্ষেপণ অ্যালগরিদমে ওভারহেড রয়েছে।

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

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

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

ডেটা সংকোচনের ব্যাখ্যা: http://mattmahoney.net/dc/dce.html


3

এই এক্সএমএল বিবেচনা করুন:

<root>
  <element id="1" />
  <element id="2" /> 
  <other id="3" />
  ...
</root>

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

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

এখন, আপনি একটি একক ফাইল, এমনকি যখন ঐ ফাইল সম্পূর্ণ ভিন্ন ট্যাগ নাম আছে মধ্যে বিভিন্ন এক্সএমএল মেশা পারেন, কম্প্রেশন অ্যালগরিদম সেরা পাওয়া হবে প্যাটার্ন সব ফাইল জুড়ে বিতরণ এবং ফাইল দ্বারা দায়ের না।

শেষ পর্যন্ত কম্প্রেশন অ্যালগরিদম সেরা পুনরাবৃত্তি প্যাটার্ন বিতরণ পেয়েছে।


-1

--জিপ উত্তরের পাশাপাশি আরও একটি পদ্ধতি রয়েছে যা ততটা ভাল নয় তবে কিছু কারণের জন্য আপনি যদি 7-জিপ ব্যবহার করতে না চান তবে তা পরীক্ষা করার উপযুক্ত হবে:

জিপ ফাইলটি সংকুচিত করুন। এখন, সাধারণত একটি জিপ ফাইলটি সঙ্কোচনীয় নয় তবে এতে প্রচুর পরিমাণে অভিন্ন ফাইল থাকে তবে সংকোচকারী এই রিডানডেন্সিটি খুঁজে পেতে এবং সংকোচনে নিতে পারেন। নোট করুন যে অযৌক্তিকতা ছাড়াই বিপুল সংখ্যক ফাইলের সাথে লেনদেন করার সময় আমি একটি সামান্য লাভও দেখেছি। আপনি যদি আকারের বিষয়ে সত্যই যত্নশীল হন তবে আপনার জিপটিতে ভয়ঙ্কর প্রচুর ফাইল থাকলে এটি চেষ্টা করার মতো worth


এটি কেবল তখনই কাজ করে যদি আপনি উপরে উল্লিখিত হিসাবে সংক্ষেপে প্রথম জিপ বন্ধ করে দেন।
মন্টি হার্ড

@ মন্টিহার্ডার আমি দেখেছি এটি সংক্ষেপণ চালু হওয়ার সাথে সাথে কাজ করে।
18:15 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.