ภาพรวม

ไลบรารีของเราอนุญาตให้มีการบีบอัดหลายสตรีมสำหรับบางรูปแบบ สิ่งนี้ช่วยให้คุณเพิ่มความเร็วของการบีบอัดข้อมูลได้อย่างมาก

การเก็บถาวร BZIP2, LZIP และ XZ แบบขนาน

จำนวนเธรดการบีบอัดสามารถตั้งค่าได้ผ่านคุณสมบัติ "เธรดการบีบอัด" ของคลาสการตั้งค่าที่เกี่ยวข้อง ค่าเริ่มต้นคือ 1 และการบีบอัดจะดำเนินการบนเธรดเดียว อย่างไรก็ตาม หากคุณตั้งค่ามากกว่าหนึ่ง อัลกอริทึมจะใช้จำนวนแกนประมวลผลที่สอดคล้องกัน

Parallel compression to BZIP2

    save_options =  zp.bzip2.Bzip2SaveOptions()
    save_options.compression_threads = 4
    with zp.bzip2.Bzip2Archive() as archive:
        archive.set_source("data.bin")
        archive.save("archive.bz2", save_options)

Parallel compression to LZIP

    # Will use 16Mb for dictionary:
    settings = zp.lzip.LzipArchiveSettings(0x1000000)
    settings.compression_threads = 4
    with zp.lzip.LzipArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.lz")

Parallel compression to XZ

    settings = zp.xz.settings.XzArchiveSettings()
    settings.compression_threads = 4
    with zp.xz.XzArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.xz")

ในตัวอย่างเหล่านี้ ข้อมูลโค้ด Python จะดำเนินการที่คล้ายกันสำหรับการสร้างไฟล์เก็บถาวร โดยแตกต่างเฉพาะในรูปแบบการบีบอัดที่ใช้เท่านั้น โดยทั่วไปแล้วจะทำตามขั้นตอนเหล่านี้:

  • สร้างออบเจ็กต์การตั้งค่าเฉพาะสำหรับรูปแบบไฟล์เก็บถาวร
  • ตั้งค่าจำนวนสตรีมแบบขนานสำหรับการบีบอัด
  • ออบเจ็กต์ไฟล์เก็บถาวรจะถูกสร้างขึ้น ในบริบทด้วย ซึ่งรับประกันการปิดไฟล์เก็บถาวรโดยอัตโนมัติหลังจากการดำเนินการเสร็จสิ้น
  • ระบุแหล่งข้อมูลที่จะเพิ่มลงในไฟล์เก็บถาวร
  • บันทึกไฟล์เก็บถาวรในรูปแบบที่เหมาะสมโดยใช้ การตั้งค่าที่กำหนดไว้

การบีบอัด LZMA2 และมัลติเธรดในไฟล์เก็บถาวร 7Z

ตัวอย่างนี้สาธิตวิธีการสร้างไฟล์เก็บถาวร 7z โดยใช้ไฟล์ data.bin เราใช้อัลกอริธึมการบีบอัด LZMA2 กับสี่สตรีมเพื่อบีบอัดข้อมูลอย่างมีประสิทธิภาพ

Parallel compression to 7Z LZMA2

    compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
    compression_settings.compression_threads = 4
    entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
    with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
        archive.create_entry("data.bin", "data.bin")
        archive.save("result.7z")

โค้ดนี้สร้างไฟล์เก็บถาวร 7z โดยการอ่านข้อมูลจากไฟล์ data.bin โดยใช้ SevenZipLZMA2CompressionSettings แทนการตั้งค่าสำหรับ Bzip2, Lzip หรือ XZ และอัลกอริธึมการบีบอัด LZMA2 ที่มีสี่เธรดสำหรับการบีบอัด โดยจะใช้เมธอด create_entry ของ SevenZipArchive แทนเมธอด set_source

เร่งความเร็วการเก็บ ZIP ด้วยการบีบอัดแบบขนาน

การสร้างไฟล์ ZIP สามารถทำแบบขนานได้ในระดับเริ่มต้น เมื่อต้องการทำเช่นนี้ ให้ใช้อินสแตนซ์ ParallelOptions และคุณสมบัติของอินสแตนซ์

    parallel_opt = zp.saving.ParallelOptions()
    parallel_opt.parallel_compress_in_memory =  zp.saving.ParallelCompressionMode.AUTO
    save_opt =  zp.saving.ArchiveSaveOptions()
    save_opt.parallel_options = parallel_opt
    with zp.Archive as archive:
        archive.create_entries("~/Data")
        archive.Save("archive.zip", save_opt)

คุณสมบัติหลักคือ:

  • การใช้ ParallelOptions เพื่อกำหนดค่าการบีบอัดในหน่วยความจำแบบขนาน
  • การใช้ ArchiveSaveOptions สำหรับการตั้งค่าการบันทึกทั่วไป
  • การใช้เมธอด create_entries เพื่อเพิ่มไฟล์จาก ~/Data ไดเร็กทอรีไปยังไฟล์เก็บถาวร
โปรดดูเอกสารประกอบเพื่อทำความเข้าใจความหมายของค่าการแจงนับ ParallelCompressionMode ให้ดียิ่งขึ้น เล่นกับค่าเหล่านี้เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดอย่างชัดเจนตามวัตถุประสงค์และการกำหนดค่าฮาร์ดแวร์ของคุณ

Aspose.ZIP อื่นๆ ที่รองรับสำหรับคุณสมบัติ Python.Net API

ด้วยไลบรารี Aspose.ZIP ใน Python.Net คุณสามารถจัดการงานต่างๆ ที่เกี่ยวข้องกับเอกสารไฟล์ ZIP ได้อย่างราบรื่น ไม่ว่าคุณจะต้องการแปลงรูปแบบ รวมไฟล์ แก้ไขเนื้อหา หรือแยกข้อมูล Aspose.ZIP มีฟังก์ชันการทำงานที่ครอบคลุมเพื่อปรับปรุงขั้นตอนการทำงานของคุณและปรับปรุงประสิทธิภาพการทำงาน

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: