තාර ලේඛනාගාර ආකෘති bzip2 වෙනුවට xz සම්පීඩනයට මාරු වන්නේ ඇයි සහ gzip ගැන කුමක් කිව හැකිද?


214

සාම්ප්‍රදායික සම්පීඩනය වෙනුවට සම්පීඩනය සඳහා වැඩි වැඩියෙන් tarලේඛනාගාරය xzLZMA2 මත පදනම් වූ ආකෘතිය භාවිතා bzip2(bz2)කරයි. ඇත්ත වශයෙන්ම kernel.org විසින් 2013 දෙසැම්බර් 27 වන දින ප්‍රමාද වූ " ගුඩ්-බයි bzip2 " නිවේදනයක් නිකුත් කරන ලදී, එයින් පෙන්නුම් කරන්නේ කර්නල් ප්‍රභවයන් මෙතැන් සිට tar.gz සහ tar.xz යන දෙඅංශයෙන්ම මුදා හරිනු ඇති බවයි - සහ වෙබ් අඩවියේ ප්‍රධාන පිටුවේ කෙලින්ම පිරිනමන දේ ඇතුලත් වේ tar.xz.

මෙය සිදුවීමට හේතුව සහ gzipමෙම සන්දර්භය තුළ අදාළත්වය කුමක්ද යන්න පැහැදිලි කිරීමට නිශ්චිත හේතු තිබේද?

history  gzip  bzip2  xz 

Answers:


208

අන්තර්ජාලය හරහා ලේඛනාගාරය බෙදා හැරීම සඳහා, පහත සඳහන් දේ සාමාන්‍යයෙන් ප්‍රමුඛතාවයකි:

  1. සම්පීඩන අනුපාතය (එනම්, සම්පීඩකය මඟින් දත්ත සෑදීම කොතරම් කුඩාද);
  2. විසංයෝජන කාලය (CPU අවශ්‍යතා);
  3. විසංයෝජන මතක අවශ්‍යතා; හා
  4. ගැළපුම (විසංයෝජන වැඩසටහන කෙතරම් පුළුල්ව පැතිරී තිබේද)

සම්පීඩන මතකය සහ CPU අවශ්‍යතා ඉතා වැදගත් නොවේ, මන්ද ඔබට ඒ සඳහා විශාල වේගවත් යන්ත්‍රයක් භාවිතා කළ හැකි අතර ඔබට එය කළ යුත්තේ එක් වරක් පමණි.

Bzip2 හා සසඳන විට xz වඩා හොඳ සම්පීඩන අනුපාතයක් සහ අඩු (වඩා හොඳ) විසංයෝජන කාලය ඇත. කෙසේ වෙතත්, එය සාමාන්‍යයෙන් භාවිතා කරන සම්පීඩන සැකසුම් වලදී dec විසංයෝජනය කිරීමට වැඩි මතකයක් අවශ්‍ය වේ [1] සහ එය තරමක් අඩු පුළුල් වේ. Gzip එකකට වඩා අඩු මතකයක් භාවිතා කරයි.

එබැවින්, gzip සහ xz යන දෙකම සංරක්ෂිත කර ඇත, එය ඔබට තෝරා ගැනීමට ඉඩ දෙයි:

  • ඉතා සීමිත මතකයක් (<32 MB) සහිත යන්ත්‍රයක විසංයෝජනය කිරීමට අවශ්‍යය : gzip. ලබා දී ඇත, කර්නල් ප්‍රභවයන් ගැන කතා කිරීමේදී බොහෝ දුරට ඉඩ නැත.
  • පවතින අවම මෙවලම් විසංයෝජනය කිරීමට අවශ්‍යය: gzip
  • බාගැනීමේ කාලය සහ / හෝ කලාප පළල ඉතිරි කිරීමට අවශ්‍යයි: xz

ඔබට bzip2 තෝරා ගැනීමට අවශ්‍ය සාධකවල යථාර්ථවාදී සංයෝජනයක් නොමැත. එබැවින් එය ක්‍රමානුකූලව ඉවත් කරනු ලැබේ.

මම බ්ලොග් සටහනක සම්පීඩන සැසඳීම් දෙස බැලුවෙමි . ප්‍රති results ල නැවත පිටපත් කිරීමට මම උත්සාහ නොකළ අතර, එයින් සමහරක් වෙනස් වී ඇති බවට මම සැක කරමි (බොහෝ දුරට, xzඑහි නවතම ඒවා ලෙස වැඩිදියුණු වී ඇතැයි මම අපේක්ෂා කරමි .)

(Xz ට වඩා හොඳ bzip2 ක්‍රියාත්මක කිරීම වඩාත් සුදුසු විය හැකි නිශ්චිත අවස්ථා කිහිපයක් තිබේ: bzip2 හට xz ට වඩා හොඳ ශුන්‍ය හා ජානමය DNA අනුක්‍රමයන් සහිත ගොනුවක් සම්පීඩනය කළ හැකිය. දූෂණය හා සමාන්තර සම්පීඩනය සහ [න්‍යාය අනුව] විසංයෝජනය යන කරුණු වලින් පසුව. මීට පෙර මේවා ඉදිරිපත් කළේ bzip2 පමණි. [2] කෙසේ වෙතත් මේ කිසිවක් කර්නල් බෙදා හැරීම සඳහා අදාළ නොවේ)


1: සංරක්ෂිත ප්‍රමාණයෙන්, xz -3අවට bzip -9. එවිට xz දිරාපත් වීමට අඩු මතකයක් භාවිතා කරයි. නමුත් xz -9(උදා: ලිනක්ස් කර්නල් ටාබෝල් සඳහා භාවිතා කරන පරිදි) ඊට වඩා බොහෝ දේ භාවිතා කරයි bzip -9. (ඊටත් වඩා xz -0අවශ්‍යයි gzip -9).

2: F21 පද්ධති පුළුල් වෙනස: lbzip2 පෙරනිමියෙන් bzip2 ක්‍රියාත්මක කිරීම


දෝෂ ඉවසීම යන මාතෘකාව පිළිබඳ කිසියම් අදහසක් හෝ සම්පීඩන ඇල්ගොරිතම වලින් බැහැරව සෑම විටම ක්‍රියාත්මක වන දෙයක්ද?

1
සම්පීඩන අනුපාතය කැප නොකර @ ආලෝකකරණ ප්‍රතිරෝධය සැපයිය නොහැක. එය විකලාංග ගැටළුවක් වන අතර, පර්චයිව් වැනි මෙවලම් පවතින අතර, කර්නලය බෙදා හැරීම සඳහා ටී.සී.පී. හි දෝෂ හැසිරවීම කාර්යය ඉටු කරයි.
ටෝබු

2
@ illuminÉ වැරදි ඉවසීම (ඔබ අදහස් කළේ par2 ට සමාන දෙයක් යැයි උපකල්පනය කිරීම) සාමාන්‍යයෙන් අන්තර්ජාලය හරහා ලේඛනාගාරය බෙදා හැරීම ගැන සැලකිලිමත් නොවේ. බාගැනීම් විශ්වාසදායක යැයි උපකල්පනය කර ඇත (එය දූෂිත වූවා නම් ඔබට නැවත බාගත කළ හැකිය). ගුප්ත ලේඛන හැෂ් සහ අත්සන් බොහෝ විට භාවිතා වන අතර, ඒවා දූෂණය මෙන්ම හීලෑ කිරීම ද හඳුනා ගනී. සම්පීඩන අනුපාතයේ පිරිවැය වුවද වැඩි දෝෂ ඉවසීමක් ලබා දෙන සම්පීඩක ඇත. HTTP හෝ FTP බාගැනීම් සඳහා වටිනා වෙළඳාමක් කිසිවෙකු සොයා ගත් බවක් නොපෙනේ.
ඩෙරොබට්

xz විසංයෝජනය සඳහා අඩු මතකයක් භාවිතා කරයි.
මයිකල් එච්

Ike මයික් මම මෙය ලිවූ දා සිට එය වෙනස් වී තිබේද? විශේෂයෙන්, පාදසටහනක් මඟින් මතක භාවිතය පැහැදිලි කරයි.
ඩෙරොබට්

47

පළමුවෙන්ම, මෙම ප්රශ්නය කෙලින්ම සම්බන්ධ නොවේ tar. තාර හුදෙක් සම්පීඩිත සංරක්ෂිතයක් නිර්මාණය කරයි, සම්පීඩනය පසුව යොදනු ලැබේ.

LZMA2 සහ bzip2 සමඟ සසඳන විට Gzip වේගවත් බව දන්නා කරුණකි. වේගය වැදගත් නම්, gzip(විශේෂයෙන් බහු තෙරපුම් ක්‍රියාත්මක කිරීම pigz) බොහෝ විට සම්පීඩන වේගය සහ සම්පීඩන අනුපාතය අතර හොඳ සම්මුතියකි. වේගය ගැටළුවක් නම් විකල්ප ඇතත් (උදා: LZ4).

කෙසේ වෙතත්, ඉහළ සම්පීඩන අනුපාතයක් අවශ්‍ය නම් LZMA2 bzip2සෑම අංශයකින්ම පාහේ පහර දෙයි . සම්පීඩන වේගය බොහෝ විට මන්දගාමී වේ, නමුත් එය වඩා වේගයෙන් දිරාපත් වන අතර ඉහළ මතක භාවිතයේ පිරිවැය යටතේ වඩා හොඳ සම්පීඩන අනුපාතයක් සපයයි.

bzip2පසුගාමී අනුකූලතාව හැර, තවත් භාවිතා කිරීමට බොහෝ හේතු නොමැත . තවද, LZMA2 බහු තෙරපුම මනසින් නිර්මාණය කර ඇති අතර පෙරනිමියෙන් බොහෝ ක්‍රියාත්මක කිරීම් බහුකාර්ය CPU භාවිතා කරයි (අවාසනාවකට xzලිනක්ස් හි මෙය තවමත් සිදු නොවේ). ඔරලෝසු වේගය තව දුරටත් වැඩි නොවන නමුත් මධ්‍ය ගණන වැඩි වන බැවින් මෙය අර්ථවත් කරයි.

බහු තෙරපුම් bzip2ක්‍රියාත්මක කිරීම් තිබේ (උදා pbzip), නමුත් ඒවා බොහෝ විට පෙරනිමියෙන් ස්ථාපනය කර නැත. LZMA2 ට ප්‍රතිවිරුද්ධව, බහු නූල් භාවිතා කරන්නේ සම්පීඩනය කිරීමේදීbzip2 පමණක් ගෙවන අතර විසංයෝජනය තනි නූල් භාවිතා කරමින් ගොනුව සම්පීඩනය කර ඇත්නම් තනි නූල් භාවිතා කරන බව සලකන්න . සමාන්තර ප්‍රභේදයන්ට සමාන්තර අනුවාදයක් භාවිතා කර ගොනුව සම්පීඩනය කර ඇත්නම් පමණක් බහුකාර්ය CPU භාවිතා කළ හැකිය , එය බොහෝ විට එසේ නොවේ.bzip2bzip2bzip2


4
සමහර තාරයන් zවිකල්පයක් ලබා ගනී.
tchrist

"වේගය" අවුල් සහගත පිළිතුරක් ලබා දෙයි, ඔබ සම්පීඩන වේගය හෝ විසංයෝජන වේගය වෙත යොමු විය යුතුය. Pixz, pbzip2 හෝ pigz පෙරනිමියෙන් ස්ථාපනය කර නැත (හෝ -I ධජය නොමැතිව තාර භාවිතා කරයි), නමුත් pixz සහ pbzip2 සම්පීඩනය වේගවත් කිරීම සහ විසංයෝජනය කිරීම සහ pig රු සම්පීඩනය සඳහා පමණි.
ටෝබු

පෙරනිමියෙන් ටෝබු xzබහු තෙරපුම් කරනු ඇත, එබැවින් pixzඅනාගතයේදී ස්ථාපනය අවශ්‍ය නොවේ. සමහර වේදිකාවල xzනූල් දැමීම දැනටමත් සහය දක්වයි. ඇති ෙහයින්ද bzip2ආකෘතිය මතක multithreading සමග නිර්මාණය නොවීම නිසා අසම්භාව්ය මෙතෙක් multithreaded කරනු ඇත. තවද, බොහෝ විට එසේ නොවන pbzip2ගොනුව සම්පීඩනය කර ඇත්නම් පමණක් විසංයෝජනය වේගවත් කරයි pbzip2.
මාකෝ

1
Ar මාකෝ මම විශ්වාස කරන්නේ lbzip2 සමාන්තර නොවන ක්‍රියාවලියක් සමඟ සම්පීඩනය කළත් සමාන්තරව විසංයෝජනය කිරීමට ඉඩ ලබා දෙන බවයි (උදා: කොටස් bzip2). ඒ නිසයි මම pbzip2 ට වඩා lbzip2 භාවිතා කරන්නේ. (ඔබගේ අදහස් දැක්වීමේ සිට මෙය විකාශනය වීමට ඉඩ ඇත.)
RaveTheTadpole

This makes sense since the clock speeds won't increase any more - මොනවාද? එය සත්‍යයක් නොවේ. මෙම තනතුර 2014 දී ඉන්ටෙල් විසින් i3-4370 3.8GHz දී නිකුත් කරන විට සිදු කරන ලදී. 2017 දී ඉන්ටෙල් විසින් i7-8700K4.7GHz දී නිකුත් කරන ලදී. 2018 දී ඔවුන් 5GHz ට i9-9900K නිකුත් කළ අතර 2015 සහ 2016 දී බොහෝ විට cpus ද මෙම ලැයිස්තුවේ නොමැති විය හැකිය
hanshenrik

20

කෙටි පිළිතුර : සම්පීඩන අනුපාතය අනුව xz වඩා කාර්යක්ෂම වේ. එබැවින් එය තැටියේ ඉඩ ඉතිරි කර ජාලය හරහා මාරු කිරීම ප්‍රශස්ත කරයි. ප්‍රායෝගික පරීක්ෂණ මගින් වෙනස සොයා ගැනීමට
ඔබට මෙම ඉක්මන් මිණුම් ලකුණ දැකිය හැකිය .


සබැඳිය කැඩී ඇත.
flarn2006


19

LZMA2 යනු බ්ලොක් සම්පීඩන පද්ධතියක් වන අතර gzip එසේ නොවේ. මෙයින් අදහස් කරන්නේ LZMA2 බහු-නූල් සඳහා නැඹුරු වන බවයි. එසේම, ලේඛනාගාරයක දූෂණය සිදුවුවහොත්, ඔබට සාමාන්‍යයෙන් LZMA2 සමඟ පසුකාලීන කොටස් වලින් දත්ත ලබා ගත හැකි නමුත් ඔබට මෙය gzip සමඟ කළ නොහැක. ප්රායෝගිකව, දූෂිත කොටසකට පසුව gzip සමඟ මුළු සංරක්ෂිතයම ඔබට අහිමි වේ. LZMA2 සංරක්ෂිතයක් සමඟ, ඔබට අහිමි වන්නේ දූෂිත බ්ලොක් (ය) මගින් බලපෑමට ලක්වූ ගොනුව පමණි. බහු ලිපිගොනු සහිත විශාල ලේඛනාගාරවල මෙය වැදගත් විය හැකිය.


2
මෙය ඉතා ප්‍රයෝජනවත් හා වැදගත් වෙනසකි.
ලෙඩන්

1
ඔබට මෙම හිමිකම් ප්‍රභවයන් සමඟ උපස්ථ කළ හැකිද? මට තවම XZ ප්‍රතිසාධන මෙවලමක් දැක නැති අතර, මා දන්නා ප්‍රභවය වෙනත් ආකාරයකින් ප්‍රකාශ කරයි: nongnu.org/lzip/xz_inadequate.html
nyov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.