Repository navigation
Full Changelog: v2.0.0-beta...v3.0.0-beta
ProcRipper Changelog
v3.0.0 (December 2025) - Major Architecture Overhaul
🎯 Major Changes
Complete Codebase Restructure
- Modular Architecture: Refactored from single 2700+ line monolithic
Main.csto organized project structure:Core/- Configuration, monitoring engine, CPU topology detection, loggingFeatures/- Feature-specific modules (GPU priority, network throttling, DWM optimizer, etc.)UI/- Tray icon manager, WinForms configuration editorNative/- P/Invoke wrappers and Windows API interop
- Separation of Concerns: Split runtime (ProcRipper.exe) from configuration editor (ProcRipperConfig.exe)
- Improved Maintainability: Each feature now has its own class and namespace
Configuration Editor (ProcRipperConfig.exe)
- NEW: Dedicated WinForms GUI for configuration management
- Process Management:
- Live process list with icons, PID, and memory usage
- Add/edit/remove game and system process configurations
- Search and filter running processes
- Double-click to open detailed process editor
- Per-Process Settings:
- Priority control (TIME_CRITICAL to IDLE)
- CPU affinity management (ALL, specific cores, ranges)
- Priority boost disable toggle
- NEW: GPU priority management (Very Low, Low, Normal, High)
- Thread Management:
- Per-thread priority configuration
- Thread affinity settings
- Thread search and filtering
- Add/edit/remove thread configurations
- Module Management:
- DLL-level priority control
- Module search and filtering
- Add/edit/remove module configurations
- Global Settings:
- Network throttling toggle
- Auto-idle prevention toggle
- Verbose startup toggle
- NEW: Auto-apply memory caps on game launch
- NEW: Memory cap safety prompt toggle
- NEW: Per-app memory limits configuration (MB)
- Network priority control (Low, Normal, High, Highest)
- Import/Export:
- Export configurations as ZIP archives
- Import configurations with automatic backup
- Automatic config backups (keeps last 10)
- Memory Cap Management:
- Add apps to memory limit list
- Set per-app MB limits
- Check apps for auto-restart enforcement
- "Restart & Apply Memory Cap" button for immediate enforcement
✨ New Features
GPU Priority Management
- Per-Process GPU Scheduling Control: Set GPU priority for each application
none- No GPU priority management (Windows default)very_low- Minimal GPU access (background apps)low- Reduced GPU accessnormal- Default GPU accesshigh- Maximum GPU access (recommended for games)
- Continuous Enforcement: GPU priorities reapplied every 100ms to counter Windows resets
- Windows 10 1709+ Support: Uses
ProcessPowerThrottlingAPI - Configuration Format: Extended
.GCFGfiles to support 5th parameter- Old:
[ProcessName.exe,Priority,Affinity,DisableBoost] - New:
[ProcessName.exe,Priority,Affinity,DisableBoost,GpuPriority]
- Old:
Auto RAM Cap Enforcement
- Continuous Memory Monitoring: Checks configured apps every 5 seconds during game sessions
- Automatic Restart with Job Objects: Kills and relaunches apps exceeding memory limits with hard caps
- Per-App Configuration: Set custom MB limits for each application
- Example:
chrome_memory_limit_mb=1024,discord_memory_limit_mb=400
- Example:
- Selection-Based Enforcement: Only monitors apps explicitly checked in config UI
- Safety Prompt: Optional confirmation before auto-restarting apps on game launch
- Global Config Options:
auto_apply_memory_caps_on_game_launch=True/Falseprompt_before_auto_memory_caps_on_game_launch=True/Falseauto_memory_caps_targets=chrome,discord,steam(comma-separated list)
Shared Configuration Directory
- Workspace-Anchored Config: Both runtime and config editor now resolve a shared
config/folder - Automatic Path Resolution: Walks up directory tree to find workspace root
- Persistent Settings: Configuration changes now survive across editor/runtime launches
- Consistent State: No more path mismatches between tools
Enhanced Logging System
- Minimal vs Verbose Modes: Toggle between clean output and detailed debug info
- WriteMinimal(): New logging method for clean, color-coded status updates
- WriteVerbose(): Detailed debug logging only in verbose mode
- Timestamped Logs: All actions logged to
log/log-YYYY-MM-DD-HH-MM-SS.gtxt - Console Toggle: CTRL+SHIFT+H to hide/show console window
- Tray Integration: Tray icon reflects verbose/minimal mode state
🔧 Improvements
Monitoring Engine
- Multi-Interval Polling:
- Fast Check (100ms): Thread priority reverts, GPU priority reapplication
- Slow Check (5s): Process detection, pending threads, memory cap enforcement
- System Check (7min): System process discovery, smart watchers
- Smart Watchers: Per-process and per-thread watcher cycles for targeted re-application
- Memory Cap Monitor: Dedicated
MonitorMemoryCapsForTargetProcesses()method - Improved Cleanup: Better tracking of process/thread state across lifecycle
CPU Topology Detection
- Extracted to CpuTopologyDetector: Dedicated class for P-core/E-core detection
- Hybrid CPU Support: Properly identifies performance and efficiency cores
- Fallback Logic: Graceful degradation if topology detection fails
Tray Icon Manager
- Extracted to TrayIconManager: Dedicated UI component
- Dynamic Status Text: Reflects game optimization state, verbose mode, etc.
- Context Menu:
- Show/Hide Console
- Toggle Verbose Mode
- Force System Optimizations
- Exit
- Balloon Notifications: Inform user of game detection and optimization state
Hotkey System
- Extracted to HotkeyManager: Dedicated hotkey polling class
- Event-Driven: Uses callbacks/events instead of direct method calls
- Supported Hotkeys:
- CTRL+SHIFT+H: Toggle console visibility
- CTRL+SHIFT+V: Toggle verbose logging
- CTRL+SHIFT+G: Force system optimizations
Configuration Loading
- ConfigLoader Class: Centralized config parsing and data models
- Extended ProcessConfig: Added
GpuPriorityproperty - Global Config Parsing: Reads
ProcRipper.GCFGfor feature toggles and per-app settings - Memory Limit Dictionary: Stores
<processName>_memory_limit_mbentries - Auto Memory Caps Targets: HashSet of process base names to enforce caps on
🐛 Bug Fixes
- Config Path Consistency: Fixed config editor not remembering added apps due to working directory mismatches
- Memory Caps Not Firing: Fixed auto RAM caps not triggering due to missing global config settings
- GPU Priority Loss: Implemented continuous reapplication to counter Windows resetting priorities
- Thread Priority Reverts: Enhanced fast-check loop to catch and fix priority changes within 100ms
- Process Icon Loading: Improved icon extraction from running processes with fallback to default icons
- Config Backup Creation: Fixed backup folder creation and retention (keeps last 10)
📝 Configuration Format Changes
Global Config (ProcRipper.GCFG)
# NEW OPTIONS
auto_apply_memory_caps_on_game_launch=True
prompt_before_auto_memory_caps_on_game_launch=True
auto_memory_caps_targets=chrome,discord,steam,EpicGamesLauncher
# Per-app memory limits (MB)
chrome_memory_limit_mb=1024
discord_memory_limit_mb=400
steam_memory_limit_mb=600
steamwebhelper_memory_limit_mb=400Process Config Format
# Extended from 4 to 5 parameters
[ProcessName.exe,Priority,Affinity,DisableBoost,GpuPriority]
# Examples
[cs2.exe,2,ALL,True,high]
[chrome.exe,0,ALL,True,low]
[FortniteClient-Win64-Shipping.exe,15,ALL,True,high]GPU Priority Values
none- No GPU priority managementvery_low- Minimal GPU accesslow- Reduced GPU accessnormal- Default GPU accesshigh- Maximum GPU access (games)
🏗️ Technical Architecture
Project Structure
ProcRipper v3.0.0/
├── src/
│ ├── ProcRipper/ # Runtime executable
│ │ ├── Main.cs # Entry point (191 lines, down from 2703)
│ │ ├── Core/ # Core systems
│ │ │ ├── ConfigLoader.cs
│ │ │ ├── MonitoringEngine.cs
│ │ │ ├── CpuTopologyDetector.cs
│ │ │ ├── HotkeyManager.cs
│ │ │ ├── Logger.cs
│ │ │ └── Native/
│ │ │ └── AppPathResolver.cs
│ │ ├── Features/ # Feature modules
│ │ │ ├── GpuPriorityManager.cs
│ │ │ ├── AutoIdleManager.cs
│ │ │ ├── BackgroundProcessCloser.cs
│ │ │ ├── DwmOptimizer.cs
│ │ │ ├── NetworkThrottler.cs
│ │ │ ├── ScheduledTaskDisabler.cs
│ │ │ ├── WindowsUpdatePauser.cs
│ │ │ └── Native/
│ │ │ └── JobObjectMemoryLimiter.cs
│ │ └── UI/ # UI components
│ │ ├── TrayIconManager.cs
│ │ └── WinForms/
│ │ ├── ProcessDetailForm.cs
│ │ ├── AddMemoryLimitFromRunningForm.cs
│ │ └── MemoryCapWarningForm.cs
│ └── ProcRipperConfig/ # Configuration editor
│ ├── Program.cs # Entry point
│ └── ProcRipperConfig.cs # Main GUI (2774 lines)
├── config/ # Configuration files
│ ├── ProcRipper.GCFG
│ ├── GAME_PRIORITY.GCFG
│ └── PROC_PRIORITY.GCFG
└── Bin/Release/ # Build output
Key Classes
MonitoringEngine
- Main monitoring loop with multi-interval polling
- Process/thread priority management
- GPU priority enforcement
- Memory cap monitoring
- Smart watcher cycles
ConfigLoader
- Parses
.GCFGconfiguration files - Provides static access to game/system configs
- Manages memory limits and auto-cap targets
- Resolves shared config directory
GpuPriorityManager
- Uses
NtSetInformationProcesswithProcessPowerThrottling - Continuous priority reapplication (100ms loop)
- Process tracking via dictionary
- String parsing for config values
JobObjectMemoryLimiter
- Windows Job Objects for hard memory caps
LaunchInJob()method for constrained process launchSetJobMemoryLimitBytes()for limit enforcement- Automatic process termination on limit breach
TrayIconManager
- System tray integration
- Dynamic status text
- Context menu with actions
- Balloon notifications
🔄 Migration from v2.0.0
Breaking Changes
-
Configuration File Format: GPU priority parameter added as 5th field
- Update all
[ProcessName.exe,...]lines to include GPU priority - Use
noneif you don't want GPU priority management
- Update all
-
Executable Names:
beta v2.0.0.exe→ProcRipper.exe(runtime)- No config UI in v2.0.0 →
ProcRipperConfig.exe(new)
-
Config Directory:
- v2.0.0: Config files in exe directory
- v3.0.0: Config files in
config/subdirectory
Upgrade Steps
- Backup your existing
.GCFGfiles from v2.0.0 - Copy them to
config/folder in v3.0.0 - Open
ProcRipperConfig.exeto add GPU priority to existing processes - Press Save to update files to new format
- Run
ProcRipper.exeto start monitoring
Feature Parity
All v2.0.0 features are retained:
- ✅ Thread priority optimization
- ✅ CPU affinity management
- ✅ Process priority boost control
- ✅ DWM optimization
- ✅ Module-level priority settings
- ✅ Auto-idle disable/restore
- ✅ Tray icon integration
- ✅ Comprehensive logging
- ✅ Config file parsing
New v3.0.0 features:
- ✨ GPU priority management
- ✨ Auto RAM cap enforcement
- ✨ Configuration editor GUI
- ✨ Modular architecture
- ✨ Shared config directory
📊 Performance & Stability
Monitoring Overhead
- Fast check (100ms): ~0.5% CPU on modern systems
- Slow check (5s): ~0.2% CPU spike
- Memory usage: ~25-40 MB (down from ~15-20 MB due to WinForms GUI components)
Stability Improvements
- Better exception handling in all subsystems
- Graceful degradation when features unavailable
- Robust process/thread lifecycle tracking
- Automatic cleanup of dead process/thread references
Logging Efficiency
- Minimal mode reduces log spam by 90%
- Verbose mode provides full debug details when needed
- File logging with automatic rotation
- No performance impact in minimal mode
🎮 Tested Games & Applications
Confirmed Working
- Counter-Strike 2
- Fortnite
- Valorant
- League of Legends
- Overwatch
- Warframe
- PUBG
- Roblox
- Minecraft Windows Edition
- Various Steam/Epic Games titles
Background Apps
- Chrome, Discord, Steam, Epic Games Launcher
- OBS Studio, Streamlabs OBS
- OneDrive, Google Drive, Dropbox
- Windows system processes
🔮 Future Plans (v4.0.0)
See FEATURE_ROADMAP.MD for detailed future feature plans:
High Priority:
- Network bandwidth throttling
- Disk I/O prioritization
- Memory pressure reduction
- Power profile switching
Medium Priority:
- GPU memory allocation control
- Audio stack optimization
- Notification suppression
- VSync enforcement
Long-Term:
- ML-based automatic optimization
- Cloud sync optimization
- Antivirus integration
- Predictive preloading
📄 License & Credits
- Author: ProcRipper Development Team
- Version: 3.0.0 (Beta)
- Release Date: December 2025
- Platform: Windows 10 1709+ / Windows 11
- Framework: .NET 8.0
🐞 Known Issues
- GPU Priority Resets: Some games/drivers may reset GPU priority internally; continuous reapplication minimizes impact but cannot fully prevent it
- Memory Cap Restart Delay: Apps may briefly exceed limit before restart kicks in (5-second polling interval)
- Config Editor Icons: Some processes may show default icon if exe path cannot be resolved
- First Launch: Config editor may take 1-2 seconds to populate process list on first open