ប្រព័ន្ធបង្ហាប់ OpenZL ដែលដំណើរការលើសពី Zstd និង XZ ទាក់ទងនឹងល្បឿន និងកម្រិតនៃការបង្ហាប់ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ

Meta* បានណែនាំ OpenZL ដែលជាកញ្ចប់ឧបករណ៍បង្ហាប់ទិន្នន័យ និងបង្រួមទិន្នន័យដែលផ្តល់នូវអត្រាបង្ហាប់ និងល្បឿនខ្ពស់ជាងទម្រង់ Zstd និង XZ ។ OpenZL ត្រូវ​បាន​រចនា​ឡើង​សម្រាប់​ការ​បង្ហាប់​យ៉ាង​មាន​ប្រសិទ្ធភាព​នៃ​សំណុំ​ទិន្នន័យ​ដែល​មាន​រចនាសម្ព័ន្ធ​ដូច​ជា​ឯកសារ​ដែល​បាន​ប្រើ​ក្នុង​ការ​រៀន​ម៉ាស៊ីន​ ព្រម​ទាំង​កន្លែង​ផ្ទុក​ទិន្នន័យ​ដែល​មាន​វាល​ដែល​មាន​ប្រភេទ​ព័ត៌មាន​ដដែលៗ​ផ្សេងៗ។ OpenZL ត្រូវបានសរសេរជា C/C ++ ហើយត្រូវបានប្រភពបើកចំហក្រោមអាជ្ញាប័ណ្ណ BSD ។

នៅពេលបង្ហាប់មូលដ្ឋានទិន្នន័យដែលមានកាតាឡុកតារាតារាសាស្ត្រ SAO OpenZL បានកាត់បន្ថយទំហំទិន្នន័យដោយកត្តា 2.06 ខណៈពេលដែលក្បួនដោះស្រាយ zstd បានបង្ហាប់ទិន្នន័យដោយកត្តា 1.31 និង XZ ដោយកត្តា 1.64 ។ លើសពីនេះទៅទៀត OpenZL បានដំណើរការ zstd ក្នុងល្បឿនបង្ហាប់ដោយកត្តា 2 (203 MB/s ធៀបនឹង 115 MB/s) និង XZ ដោយកត្តា 65 (203 MB/s ធៀបនឹង 3.1 MB/s)។ ការបង្រួមក្នុង OpenZL គឺយឺតជាង zstd បន្តិច (822 MB/s ធៀបនឹង 890 MB/s) និង 27 ដងលឿនជាង XZ ។

 ប្រព័ន្ធបង្ហាប់ OpenZL ដែលដំណើរការលើសពី Zstd និង XZ ទាក់ទងនឹងល្បឿន និងកម្រិតនៃការបង្ហាប់ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ

OpenZL មិនមែនជាក្បួនដោះស្រាយគោលបំណងទូទៅទេ ហើយគ្រាន់តែបង្ហាញលទ្ធផលល្អសម្រាប់ទិន្នន័យដែលមានរចនាសម្ព័ន្ធដែលគេស្គាល់ប៉ុណ្ណោះ។ ប្រតិបត្តិការរបស់ OpenZL មានការបង្កើតកញ្ចប់វេចខ្ចប់ដោយសម្របខ្លួនដោយផ្អែកលើការពិពណ៌នាទិន្នន័យដែលបានផ្តល់។ វាបង្កើតកូដបង្ហាប់ដែលបានធ្វើឱ្យប្រសើរសម្រាប់ទម្រង់ទិន្នន័យជាក់លាក់មួយ។ ឧបករណ៍វេចខ្ចប់ជាសកល ដែលអាចប្រើបានជាមួយឧបករណ៍វេចខ្ចប់ដែលបានបង្កើតទាំងអស់ ត្រូវបានប្រើសម្រាប់ការបង្ហាប់។

ការវេចខ្ចប់ និងការវេចខ្ចប់ត្រូវបានអនុវត្តដោយប្រើឧបករណ៍ប្រើប្រាស់តែមួយ "zli" ឬបណ្ណាល័យ libopenzl ។ រចនាសម្ព័ន្ធទិន្នន័យត្រូវបានពិពណ៌នានៅក្នុងទម្រង់នៃទម្រង់។ នេះរួមបញ្ចូលទាំងសំណុំនៃទម្រង់ដែលបានកំណត់ជាមុនដែលពិពណ៌នាអំពីទ្រង់ទ្រាយផ្ទុកធម្មតា។ ឧទាហរណ៍ ទម្រង់សម្រាប់ទម្រង់ CSV ឬទិន្នន័យដែលរក្សាទុកជាអារេ 64 ប៊ីត។ ការបង្ហាប់គឺសាមញ្ញដូចជាការជ្រើសរើសទម្រង់ដោយប្រើពាក្យបញ្ជា "zli list-profiles" ហើយចាប់ផ្តើមដំណើរការបង្ហាប់ដោយប្រើពាក្យបញ្ជា "zli compress --profile profile_name" ។ ដើម្បីស្រាយកញ្ចប់ គ្រាន់តែដំណើរការ "zli decompress" ។

សម្រាប់ទម្រង់ជាក់លាក់ ទម្រង់ផ្ទាល់ខ្លួនត្រូវតែត្រូវបានបង្កើតដោយប្រើពាក្យបញ្ជា "zli train" ដែលកំណត់លំនាំនៅក្នុងទិន្នន័យ និងបង្កើតទម្រង់ដែលមានកម្រិតបង្ហាប់ល្អបំផុត។ ដោយប្រើជម្រើស "--pareto-frontier" ទម្រង់ដែលបានបង្កើតអាចត្រូវបានធ្វើឱ្យប្រសើរដើម្បីបង្កើនល្បឿនការបង្ហាប់ឬការបង្ហាប់ដោយចំណាយលើការបង្ហាប់។ ភាសាពិពណ៌នាទិន្នន័យសាមញ្ញ (SDDL) អាចត្រូវបានប្រើដើម្បីពណ៌នាអំពីទម្រង់ស្មុគស្មាញដែលមានរចនាសម្ព័ន្ធជាប់គ្នា និងកំណត់ប្លង់នៃទ្រង់ទ្រាយទិន្នន័យនៅក្នុងរចនាសម្ព័ន្ធ។

វិធីសាស្ត្រសម្រាប់បង្កើតឧបករណ៍វេចខ្ចប់ល្អបំផុតគឺផ្អែកលើសំណុំនៃកម្មវិធីបំប្លែងបឋម ដែលនីមួយៗមានប្រសិទ្ធភាពបំផុតសម្រាប់ប្រភេទទិន្នន័យ និងលំដាប់ជាក់លាក់។ សម្រាប់ការបង្ហាប់ ក្រាហ្វដំណើរការទិន្នន័យ acyclic ដឹកនាំត្រូវបានបង្កើតឡើង ដោយមានកូឌិកជាថ្នាំង និងបំរែបំរួលទិន្នន័យក្នុងទម្រង់ដែលបានដំណើរការជាគែម។ អាស្រ័យលើប្រភេទទិន្នន័យបញ្ចូល ខ្សែសង្វាក់នៃកូឌិកត្រូវបានជ្រើសរើស ដែលបង្រួមធាតុទិន្នន័យចូលបានល្អបំផុត។ ជាមួយនឹងការរៀបចំនេះ បឋមកថាឯកសារត្រូវបានបង្ហាប់ដោយប្រើកូឌិកមួយ វាលទិន្នន័យចំនួនគត់ដោយប្រើកូឌិកទីពីរ វាលរាប់បន្ថែមដោយប្រើកូឌិកទីបី និងវាលទិន្នន័យខ្សែអក្សរដោយប្រើកូឌិកទីបួន។

 ប្រព័ន្ធបង្ហាប់ OpenZL ដែលដំណើរការលើសពី Zstd និង XZ ទាក់ទងនឹងល្បឿន និងកម្រិតនៃការបង្ហាប់ទិន្នន័យដែលមានរចនាសម្ព័ន្ធ


ប្រភព: opennet.ru

បន្ថែមមតិយោបល់