با استفاده از SQLite به عنوان محفظه ای برای بایگانی فایل ها آزمایش کنید

پروژه Pack تلاش کرد تا یک قالب آرشیو فایل بر اساس کتابخانه SQLite و الگوریتم فشرده سازی ZSTD (Zstandard) ایجاد کند. نمونه اولیه آماده شده که به زبان پاسکال نوشته شده و تحت مجوز آپاچی 2.0 توزیع شده است، علیرغم اینکه کار آن به خواندن داده ها، فشرده سازی آن با کتابخانه libzstd و انجام عملیات SQL محدود می شد، در سرعت ایجاد بایگانی از رایج ترین آرشیوها بهتر عمل کرد. داده های فشرده شده را به یک فایل با پایگاه داده SQLite اضافه کنید.

هنگام فشرده سازی دایرکتوری با 81 هزار فایل با حجم کلی 1.25 گیگابایت، بسته 112 برابر سریعتر از برنامه ZIP بود و عملیات را در 1.3 ثانیه در مقابل 146 ثانیه برای ZIP تکمیل کرد. اندازه بایگانی بسته 23٪ کوچکتر بود (194 مگابایت برای Pack و 253 مگابایت برای ZIP). برای مقایسه، ابزار tar بسته بندی را در 4.7 ثانیه بدون فشرده سازی و در 28.5 ثانیه با فشرده سازی gzip تکمیل کرد، بایگانی RAR آزمایش را در 27.5 ثانیه و 7z را در 54.2 ثانیه تکمیل کرد. اندازه های آرشیو: tar.gz - 214 مگابایت، RAR - 235 مگابایت، 7z - 135 مگابایت بود. خاطرنشان می شود که از نظر سرعت باز کردن بسته بندی و دسترسی تصادفی به فایل ها، پک در عین مصرف رم کمتر از سایر آرشیوها جلوتر است. زیپ: 253 MB ، 146 S 7Z: 135 MB ، 54.2 S سریعتر زیپ 2.7 بار TAR.GZ: 214 MB ، 28.5 SX 5.1 RAR: 235 MB ، 27.5 SX 5.3 TAR: 1345 MB ، 4.7 SX 31 بسته: 194 MB ، 1.3 MB ، 112 MB ، XNUMX MB ، XNUMX Mb ، XNUMX SX XNUMX

هیچ اشاره ای به تأثیر حافظه پنهان فایل بر نتایج آزمایش نشده است. احتمالاً سرعت پایین ZIP به دلیل ترتیبی است که آزمایش ها بدون توجه به ذخیره داده ها در حافظه راه اندازی شده اند - تست با zip با کش سرد و بقیه تست ها با کش گرم راه اندازی شد. در شرایط عادی، Zstandard سرعت فشرده سازی 3-5 برابر سریع تر از zlib و 10 برابر سریع تر از حالت فشرده سازی، با 15-XNUMX٪ سطوح فشرده سازی بالاتر را نشان می دهد.

علاوه بر این: ایده مشابه ذخیره فایل های فشرده به شکل حباب در پایگاه داده SQLite در سال 2014 در بایگانی sqlar پیاده سازی شد که توسط توسعه دهندگان SQLite به عنوان آزمایشی برای ارزیابی کارایی ذخیره سازی حباب ها در SQLite ایجاد شد. sqlar از zlib برای فشرده سازی استفاده می کند و اندازه فایل حدود 2% بزرگتر از برنامه ZIP است.

منبع: opennet.ru

اضافه کردن نظر