[PR #887] [MERGED] Improve rar memory usage #1305

Open
opened 2026-01-29 22:19:53 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/adamhathcock/sharpcompress/pull/887
Author: @majorro
Created: 1/13/2025
Status: Merged
Merged: 1/14/2025
Merged by: @adamhathcock

Base: masterHead: improve-rar-memory-usage


📝 Commits (9)

📊 Changes

14 files changed (+129 additions, -93 deletions)

View changed files

📝 Directory.Packages.props (+2 -1)
📝 src/SharpCompress/Archives/Rar/RarArchive.cs (+15 -0)
src/SharpCompress/BufferPool.cs (+0 -33)
📝 src/SharpCompress/Compressors/Rar/RarCRC.cs (+1 -1)
📝 src/SharpCompress/Compressors/Rar/RarStream.cs (+5 -4)
📝 src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs (+33 -26)
📝 src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs (+2 -2)
📝 src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs (+6 -1)
📝 src/SharpCompress/Compressors/Rar/VM/RarVM.cs (+3 -3)
📝 src/SharpCompress/Readers/AbstractReader.cs (+1 -1)
📝 src/SharpCompress/Readers/Rar/RarReader.cs (+15 -0)
📝 src/SharpCompress/SharpCompress.csproj (+1 -0)
📝 src/SharpCompress/packages.lock.json (+31 -16)
📝 tests/SharpCompress.Test/packages.lock.json (+14 -5)

📄 Description

  • Removed redundant BufferPool
  • Improved memory usage of UnpackV1:
    • used ArrayPool for window
    • used stackalloc for other array allocations

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/adamhathcock/sharpcompress/pull/887 **Author:** [@majorro](https://github.com/majorro) **Created:** 1/13/2025 **Status:** ✅ Merged **Merged:** 1/14/2025 **Merged by:** [@adamhathcock](https://github.com/adamhathcock) **Base:** `master` ← **Head:** `improve-rar-memory-usage` --- ### 📝 Commits (9) - [`f8e033e`](https://github.com/adamhathcock/sharpcompress/commit/f8e033e56002396b404845aa2d8f70512eeab7bf) add explicit System.Buffers, remove redundant code - [`44998a2`](https://github.com/adamhathcock/sharpcompress/commit/44998a2a2b531ca533d7b188fa6e5eaf0ebe85cb) pooled window for rar unpackv1 - [`10e0562`](https://github.com/adamhathcock/sharpcompress/commit/10e0562a82242b9c443b9454f7773828714e8713) stackalloc rar unpackv1 - [`ca0a6ab`](https://github.com/adamhathcock/sharpcompress/commit/ca0a6ab72c82189fc9160330dee1cd28be2a9566) rollback ILLink.Tasks downgrade - [`a070493`](https://github.com/adamhathcock/sharpcompress/commit/a070493fbab0fe75e397e75bf7c0fd3ff18b75ed) window null checks - [`91364c6`](https://github.com/adamhathcock/sharpcompress/commit/91364c6a7ca50d1fee2c4bb8ed34fed66449a499) stackalloc readtables - [`23e1447`](https://github.com/adamhathcock/sharpcompress/commit/23e1447ab63ca8ccfb8fbc867e086f369bf1d0a1) stackalloc addvmcode - [`3875f62`](https://github.com/adamhathcock/sharpcompress/commit/3875f624537d0481cf024adaf8956c489452cebe) deps fix - [`a89fc3a`](https://github.com/adamhathcock/sharpcompress/commit/a89fc3a276b992737567defc210bbd2832f50f7c) formatting ### 📊 Changes **14 files changed** (+129 additions, -93 deletions) <details> <summary>View changed files</summary> 📝 `Directory.Packages.props` (+2 -1) 📝 `src/SharpCompress/Archives/Rar/RarArchive.cs` (+15 -0) ➖ `src/SharpCompress/BufferPool.cs` (+0 -33) 📝 `src/SharpCompress/Compressors/Rar/RarCRC.cs` (+1 -1) 📝 `src/SharpCompress/Compressors/Rar/RarStream.cs` (+5 -4) 📝 `src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs` (+33 -26) 📝 `src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs` (+2 -2) 📝 `src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs` (+6 -1) 📝 `src/SharpCompress/Compressors/Rar/VM/RarVM.cs` (+3 -3) 📝 `src/SharpCompress/Readers/AbstractReader.cs` (+1 -1) 📝 `src/SharpCompress/Readers/Rar/RarReader.cs` (+15 -0) 📝 `src/SharpCompress/SharpCompress.csproj` (+1 -0) 📝 `src/SharpCompress/packages.lock.json` (+31 -16) 📝 `tests/SharpCompress.Test/packages.lock.json` (+14 -5) </details> ### 📄 Description - Removed redundant `BufferPool` - Improved memory usage of `UnpackV1`: - used `ArrayPool` for `window` - used `stackalloc` for other array allocations --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 22:19:53 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/sharpcompress#1305