উবুন্টুতে কী সংক্ষেপণের সরঞ্জামগুলি উপলভ্য যা মাল্টি-কোর সিপিইউ থেকে উপকৃত হতে পারে।
উবুন্টুতে কী সংক্ষেপণের সরঞ্জামগুলি উপলভ্য যা মাল্টি-কোর সিপিইউ থেকে উপকৃত হতে পারে।
উত্তর:
দুটি প্রধান সরঞ্জাম আছে। lbzip2
এবং pbzip2
। এগুলি মূলত bzip2 সংক্ষেপকগুলির বিভিন্ন বাস্তবায়ন। আমি তাদের তুলনা করেছি (আউটপুট একটি পরিপাটি সংস্করণ তবে আপনার আদেশগুলি চালাতে সক্ষম হওয়া উচিত)
cd /dev/shm # we do all of this in RAM!
dd if=/dev/urandom of=bigfile bs=1024 count=102400
$ lbzip2 -zk bigfile
Time: 0m3.596s
Size: 105335428
$ pbzip2 -zk bigfile
Time: 0m5.738s6
Size: 10532460
lbzip2
এলোমেলো ডেটাতে বিজয়ী বলে মনে হচ্ছে। এটি সামান্য কম সংকুচিত তবে অনেক দ্রুত। YMMV।
/dev/urandom
সংশ্লেষের সরঞ্জামগুলির জন্য বেঞ্চমার্কিং সরঞ্জামগুলির জন্য ইনপুটগুলির দুর্দান্ত পছন্দ নয়, যেহেতু সংজ্ঞা অনুসারে, এলোমেলো ডেটা হয় omp এটি আংশিকভাবে ব্যাখ্যা করে যে উভয় ক্ষেত্রেই কেন আউটপুট ফাইল ইনপুটটির চেয়ে 450MiB বড় ।
00000000000000000000000000000000
। এটি এলোমেলোভাবে কীভাবে কাজ করে;) আপনি যা ব্যবহার করছেন তা ব্যবহারিক গড়। এটা অসম্ভাব্য আপনি শুধু zeros একটি 100MB ফাইল তৈরি করব। এবং আপনি যা বলছেন তার চেতনার সাথে আমি একমত, আমি কেবলমাত্র "সংজ্ঞা দ্বারা" এর সাথে একমত হই না কারণ এটি সংজ্ঞা নয় (কারণ এটি সঠিক নয়)।
wget http://mattmahoney.net/dc/enwik8.zip
উইকিপিডিয়া থেকে 96MB (21MB সংক্ষেপিত) টেক্সটটি ধরে নেওয়া। বেনমার্কগুলির আরও অনেক বিস্তৃত স্যুটের জন্য, এখানে দেখুন ।
ঠিক আছে, কীওয়ার্ডটি সমান্তরাল ছিল । সমান্তরাল যে সমস্ত সংকোচনের সরঞ্জামগুলি অনুসন্ধান করার পরে আমি নিম্নলিখিতটি পেয়েছি:
পিএক্সজেড - প্যারালাল এক্সজেড একটি সংক্ষেপণ ইউটিলিটি যা একসাথে একাধিক কোর এবং প্রসেসরের এক ইনপুট ফাইলের বিভিন্ন অংশের এলজেডএমএ সংক্ষেপন চালনার সুবিধা গ্রহণ করে। এর প্রাথমিক লক্ষ্য হ'ল সংকোচনের অনুপাতের উপর ন্যূনতম সম্ভাব্য প্রভাব সহ কমপিশন সময়কে গতিতে সমস্ত সংস্থানকে কাজে লাগানো।
sudo apt-get install pxz
প্লাজিপ - এলজিপি হ'ল এলজেডএমএ অ্যালগরিদমের উপর ভিত্তি করে একটি লসলেস ডেটা সংক্ষেপক, খুব নিরাপদ অখণ্ডতা যাচাই এবং জিজিপ বা বিজিপ 2 এর মতো একটি ব্যবহারকারী ইন্টারফেস। Lzip gzip এর মতো প্রায় দ্রুত দ্রবীভূত হয় এবং bzip2 এর চেয়ে কম কমপ্রেস করে, যা এটি সফ্টওয়্যার বিতরণ এবং ডেটা আর্কাইভের জন্য উপযুক্ত করে তোলে।
প্লিজিপ lzip ফাইল ফর্ম্যাটটি ব্যবহার করে lzip এর একটি বহুল সমান্তরাল (বহু-থ্রেডড) সংস্করণ; প্লিজিপ দ্বারা উত্পাদিত ফাইলগুলি lzip এর সাথে সম্পূর্ণ সুসংগত।
প্লিজিপটি মাল্টিপ্রসেসর মেশিনে বড় ফাইলগুলির দ্রুত সংক্ষেপণ / সংক্ষেপণের জন্য তৈরি, যা এটি বড় সফ্টওয়্যার ফাইল বিতরণ এবং বৃহত আকারের ডেটা সংরক্ষণাগার জন্য বিশেষভাবে উপযুক্ত করে তোলে। যথেষ্ট বড় ফাইলগুলিতে, প্লিজিপ কয়েকশো প্রসেসর ব্যবহার করতে পারে।
sudo apt-get install plzip
পিআইজিজেড - পিগজ, যা জিজেপের সমান্তরাল বাস্তবায়ন বোঝায়, জিজেপের জন্য সম্পূর্ণরূপে কার্যকরী প্রতিস্থাপন যা ডেটা সংকুচিত করার সময় একাধিক প্রসেসর এবং একাধিক কোরের সুবিধা গ্রহণ করে।
sudo apt-get install pigz
PBZIP2 - pbzip2 bzip2 ব্লক-বাছাই করা ফাইল সংক্ষিপ্তকারীর একটি সমান্তরাল বাস্তবায়ন যা pthreads ব্যবহার করে এবং এসএমপি মেশিনে লিনিয়ার স্পিডআপ কাছাকাছি অর্জন করে। এই সংস্করণটির আউটপুট bzip2 v1.0.2 এর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ (যেমন: pbzip2 দিয়ে সংকোচিত যে কোনও কিছুই bzip2 দিয়ে সংক্ষেপিত হতে পারে)।
sudo apt-get install pbzip2
LRZIP - একটি মাল্টিথ্রেডেড সংক্ষেপণ প্রোগ্রাম যা বড় ফাইলগুলির সাথে ব্যবহারের সময় খুব বেশি সংক্ষেপণের অনুপাত এবং গতি অর্জন করতে পারে। এটি সর্বাধিক সংক্ষেপণের জন্য zpaq এবং lzma এর সম্মিলিত সংক্ষেপণ অ্যালগরিদমগুলি, সর্বাধিক গতির জন্য lzo এবং rzip এর দীর্ঘ পরিসরের রিডানডেন্সি হ্রাস ব্যবহার করে। এটি র্যাম আকারের সাথে বৃদ্ধি সহ স্কেল করার জন্য ডিজাইন করা হয়েছে, আরও সংকোচনের উন্নতি করে। আকার বা গতির অপ্টিমাইজেশনের একটি পছন্দ লজমা সরবরাহ করতে পারে তার চেয়ে ভাল সংক্ষেপণের জন্য বা জিজিপের চেয়ে আরও ভাল গতি দেয় তবে bzip2 আকারের সংকোচনের মাত্রা সহ দেয়।
sudo apt-get install lrzip
একটি ছোট সংক্ষেপণ বেঞ্চমার্ক (অলি তৈরির পরীক্ষাটি ব্যবহার করে):
অরিজিনাল ফাইল সাইজ - 100 মেগাবাইট PBZIP2 - 101 এমবি (1% বড়)
PXZ - 101 এমবি (1% বড়)
PLZIP - 102 এমবি (1% বড়)
LRZIP - 101 এমবি (1% বড়)
পিআইজিজেড - 101 এমবি (1% বড়) )
একটি ছোট সংক্ষেপণ বেঞ্চমার্ক (একটি পাঠ্য ফাইল ব্যবহার করে):
মূল ফাইল ফাইল - 70 কেবি পাঠ্য ফাইল
PBZIP2 - 16.1 কেবি (23%)
পিএক্সজেড - 15.4 কেবি (22%)
PLZIP - 15.5 কেবি (22.1%)
এলআরজিআইপি - 15.3 কেবি (21.8%)
পিআইজিজেড - 17.4 কেবি (24.8%)
lrzip
ব্যবহার করে সঙ্কুচিত হতে পারে pbzip2
।
উপরের চমৎকার সংক্ষিপ্তসার ছাড়াও (ধন্যবাদ লুইস), আজকাল লোকেরা পিআইএক্সজেডকেও বিবেচনা করতে চাইতে পারে, যা এটি পুনরায় পড়া (উত্স: https://github.com/vasi/pixz - আমি দাবিগুলি যাচাই করে নি ) এর PXZ এর কিছু সুবিধা রয়েছে।
[Compared to PIXZ, PXZ has these advantages and disadvantages:]
* Simpler code
* Uses OpenMP instead of pthreads
* Uses streams instead of blocks, not indexable
* Uses temp files and doesn't combine them until the whole file is compressed, high disk/memory usage
অন্য কথায়, পিআইএক্সজেড সম্ভবত বেশি মেমরি এবং ডিস্ক দক্ষ, এবং এটি একটি anচ্ছিক সূচক বৈশিষ্ট্য যা সংকুচিত টার ফাইলগুলির পৃথক উপাদানগুলির সংশ্লেষণকে গতি দেয়।
pixz
সংরক্ষণাগারগুলি স্ট্যান্ডার্ড xz
ফর্ম্যাটের সাথে সামঞ্জস্য নয় , উপায় pxz
হবে।
pixz
সংক্ষেপিত করতে পারে xz
এবং সংরক্ষণাগারগুলি সংক্ষেপিত xz
করতে পারে pixz
। তবে কমান্ড লাইনের বিকল্পগুলি পৃথক xz
এবং pixz
পৃথক রয়েছে।
pixz
।
এক্সজেড ইউটিলেস v5.2.0 থেকে বহু- থ্রেডযুক্ত সংক্ষেপণ সমর্থন করে, এটি মূলত ভুলভাবে মাল্টি-থ্রেডযুক্ত সংক্ষেপণ হিসাবে নথিভুক্ত হয়েছিল।
উদাহরণ স্বরূপ: tar -cf - source | xz --threads=0 > destination.tar.xz
export XZ_DEFAULTS="-T 0"
এবং তারপরে কেবল আপনার সাধারণ টার কল কলটি ব্যবহার করতে পারেন tar cJf target.tar.xz source
।
lzop এছাড়াও একটি কার্যকর বিকল্প হতে পারে, যদিও এটি একক থ্রেডযুক্ত।
এটি খুব দ্রুত লেম্পেল-জিভ-ওবারহুমার সংক্ষেপণ অ্যালগরিদম ব্যবহার করে যা আমার পর্যবেক্ষণে জিজিপের চেয়ে 5-6 গুণ বেশি দ্রুত।
দ্রষ্টব্য: যদিও এটি এখনও বহু-থ্রেডযুক্ত নয়, এটি সম্ভবত 1-4 কোর সিস্টেমে পিগজকে ছাড়িয়ে যাবে। এই কারণেই এটি আপনার প্রশ্নের সরাসরি উত্তর না দিলেও আমি এটি পোস্ট করার সিদ্ধান্ত নিয়েছি। এটি ব্যবহার করে দেখুন, কেবলমাত্র একটি সিপিইউ ব্যবহার করার সময় এবং আরও খারাপটি সংকোচনের সময় এটি আপনার সিপিইউ বাটনেলেকের সমস্যার সমাধান করতে পারে। আমি প্রায়শই এটির চেয়ে ভাল সমাধান হতে দেখি যেমন, পিগজ।
P7zip এর LZMA2 সংক্ষেপকটি আমার সিস্টেমে উভয় কোর ব্যবহার করে।
এটি আসলে কোনও উত্তর নয়, তবে আমি মনে করি যে বাস্তব জীবনের দৃশ্যে আমার এইচডাব্লুটির গতির তুলনা gzip
এবং আমার মানদণ্ডগুলি ভাগ করে নেওয়া যথেষ্ট প্রাসঙ্গিক pigz
। pigz
মাল্টিথ্রেডেড বিবর্তন হিসাবে আমি ব্যক্তিগতভাবে এখন থেকে ব্যবহার করতে বেছে নিয়েছি।
মেটাডেটা:
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
(4 সি / 8 টি) + এনভিএম এসএসডিXubuntu 17.10 (artful)
gzip
সংস্করণ: 1.6
pigz
সংস্করণ: 2.4
gzip
দ্রুত
time gzip -1kN ./db_dump.sql
real 1m22,271s
user 1m17,738s
sys 0m3,330s
gzip
সেরা
time gzip -9kN ./db_dump.sql
real 10m6,709s
user 10m2,710s
sys 0m3,828s
pigz
দ্রুত
time pigz -1kMN ./db_dump.sql
real 0m26,610s
user 1m55,389s
sys 0m6,175s
pigz
সেরা (না zopfli
)
time pigz -9kMN ./db_dump.sql
real 1m54,383s
user 14m30,435s
sys 0m5,562s
pigz
+ zopfli
অ্যালগরিদম
time pigz -11kMN ./db_dump.sql
real 171m33,501s
user 1321m36,144s
sys 0m29,780s
একটি নিম্নরেখা হিসাবে আমি zopfli
অ্যালগরিদমের সুপারিশ করব না যেহেতু সংক্ষেপে ডিস্কের জায়গাটি বাদ দেওয়া হয়নি-এমন-তাত্পর্যপূর্ণ পরিমাণের জন্য কম্প্রেশনটি অমিত পরিমাণে সময় নেয়।
ফলাফল ফাইল ফাইলের আকার:
Zstandard যেহেতু বহু-থ্রেডিং সমর্থন v1.2.0 ¹। এটি জিজিপ প্রতিস্থাপনের উদ্দেশ্যে তৈরি একটি খুব দ্রুত সংক্ষেপক এবং ডিকম্প্রেসার এবং এটি উচ্চতর স্তরে এলজেডএমএ 2 / এক্সজেড হিসাবে দক্ষ হিসাবে - যদি ভাল না হয় তবে কমপ্রেসও করতে পারে।
আপনি ব্যবহার করতে হবে ছলনাময় উৎস থেকে বা একটি নতুন রিলিজ, বা কম্পাইল সর্বশেষ সংস্করণ এই সুবিধা পাবেন। ভাগ্যক্রমে এটি অনেক নির্ভরতা টান না।