Implement configurable memory pre-allocation for reduced reallocations #488
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements configurable memory pre-allocation strategies to address issue #131, allowing the allocation of up to 75% of available RAM or drive space at startup to significantly reduce memory reallocations during link operations.
Features Implemented
🧠 System Information Detection
⚙️ Flexible Configuration System
Incremental: Default behavior (maintains backward compatibility)PreAllocateBySystemRAM: Uses 75% of available RAM (or custom percentage)PreAllocateByDiskSpace: Uses 75% of available disk spacePreAllocateCustom: User-specified allocation size🚀 Enhanced Memory Links
Usage Examples
Performance Benefits
Testing shows significant performance improvements:
Testing
Comprehensive test coverage including:
Backward Compatibility
Test Plan
Files Added
SystemMemoryInfo.cs: Cross-platform system resource detectionMemoryAllocationStrategy.cs: Configuration classes and enumsEnhancedSplitMemoryLinks.cs: Enhanced split memory with pre-allocationEnhancedUnitedMemoryLinks.cs: Enhanced united memory with pre-allocationFixes #131
🤖 Generated with Claude Code