提取.zip存檔的最快方法是哪一種?我的應用程序的性能高度依賴於提取.zip文件的速度。我使用的是dotNetzip atm,但似乎可能有更快的工具。如果有,他們安全嗎?我聽說QuickLZ是最快的,但沒有測試過,也沒有找到任何代碼示例或如何在C#中使用它。任何幫助將大大appriciated。提取.zip存檔的最快方式
回答
爲什麼不嘗試SharpZipLib?
我自己沒有用過它,所以不知道它是如何與dotNetZip比較的。
但同樣的傢伙產生SharpDevelop,所以我期望它非常好。我使用過去創建的其他庫,並始終對性能和易用性感到滿意。
基於此[鏈接](http://www.eggheadcafe.com/tutorials/aspnet/71485ecc-2d2d-435a-9c35-3d12b279f9ae/a-comparison-of-managed-compression-algorithms.aspx)似乎是sharpziplib是最慢,也是最糟糕的我無法找到任何其他性能測試 – andree 2011-04-13 10:57:01
足夠公平,您是否注意到它只是比較內存中的壓縮和解壓縮字節數組?你可能想要運行你自己的比較,看看它們在實際壓縮和解壓縮適當的zip檔案時的表現如何。 – RobV 2011-04-13 11:03:11
進行了一些簡單的測試 - DotNetZip似乎比SharpZipLib快30-50%,解壓文件大約200-300 MB! – andree 2011-04-13 11:55:35
你的zip文件有多大?也許你可以利用現代多核處理器,將原始文件拆分成多個部分,獨立地壓縮每個部分,然後使用多線程在應用程序中解壓縮它們。與解壓縮時間相比,重新組合內存中文件的時間將會很小。
Zip文件大小爲500 MB到1.5 GB。所以你認爲我應該從原始創建2個zip文件,然後提取它們中的每一個? – andree 2011-04-18 05:45:13
使用DotNetZip庫,你可以使用ExtractAll()方法:)
如果您的項目升級到.NET 4.5是一個選項,那麼你可以使用ZipArchive
類提取所有文件。 I wrote an article使用它,它很簡單。還有ZipFile
,其中I also wrote about甚至更容易。但是,我無法評論其性能,因爲我沒有使用ZIP歸檔的第三方庫。
博客鏈接已死亡。 – 2016-09-04 21:01:10
我的域名必須移動,但我更新了鏈接。 – 2016-09-05 03:43:34
- 1. 快速的方法來提取檔案
- 2. 什麼是使用java提取zip文件的最佳方式
- 3. 獲取Ruby文檔的最快方式是什麼?
- 4. php zip存檔
- 5. 最快方式
- 6. 最快方式
- 7. 最快方式
- 8. 最快的方式
- 9. 最快的方式
- 10. 最快的方式
- 11. 最快的方式
- 12. 最快的方式
- 13. 最快的方式
- 14. 最快的方式
- 15. 最快的方式
- 16. 最快的方式
- 17. 最快的方式
- 18. 最快的方式
- 19. 最快的方式
- 20. 最快的方式
- 21. 最快的方式
- 22. 最快的方式
- 23. 最快的方式
- 24. 最快的方式
- 25. 最快的方式
- 26. 最快的方式
- 27. 最快的方式
- 28. 最快的方式
- 29. 創建使用Go的存檔Unicode文件名zip存檔/ ZIP
- 30. Common Lisp:讀取流的最快方式
關於*我的應用程序的性能很大程度上取決於提取.zip文件的速度* - 如果您進一步描述,我們可能會提供一些關於如何優化的建議。你有沒有在DotNetZip中嘗試過「最快的壓縮」級別?如果您可以控制壓縮端,那麼如果您的數據受到某種方式的限制,則可以使用較不常用的壓縮方法,這些方法的解壓縮速度也會更快。 – Cheeso 2011-04-13 17:02:19
太糟糕了,我必須提取已被其他軟件壓縮的文件,所以我不能選擇較低的壓縮級別。 – andree 2011-04-14 06:22:42
在我的應用程序中,主要方法運行花費的時間大約有一半是通過提取.zip壓縮文件來使用的,因此提高提取時間會是一次很好的性能提升。解壓後,我需要訪問這些文件的一些元數據,然後,根據元數據將它們移動到其他位置。 – andree 2011-04-14 06:30:33