System Configuration
Note:
The report was partially created with Kagi Assistant and my own input describing the situation.
After 4h Orion+ crashed the WindowServer and logged me out.
For some Reason eventhough I have Orion+ it doesn't showup on my Account Badge.
🙂 Did I do something wrong
- Device: MacBook Pro M1 Max
- RAM: 64GB Unified Memory Architecture (UMA)
- Storage: 2TB SSD
- OS: macOS 26
- Browser: Orion RC with Orion+ subscription, no plugins or extension in both Browsers
- Test Duration: Weekend testing (continuous monitoring)
Issue Summary
Orion RC exhibits severe memory management problems leading to:
- Negative shared memory allocation (-16KB)
- Excessive memory growth (425GB+ after 1 minute)
- Sustained high energy consumption
- Private memory usage reaching 2-3.75GB
Threads: 9
Ports: 9918
CPU Time: 1:48.13
Context Switches:
Faults: 677232
Page Ins: 2344
Mach System Calls: 2445021
Unix System Calls: 8193614
Actual Behavior (Current Issues)
Memory Management - Actual
Shared Memory Allocation:
- ❌ Negative value (-16KB) - indicates critical allocator failure
- ❌ Impossible memory state suggesting corrupted memory management
Private Memory Usage:
- ❌ Exceeds 425GB within 1 minute (85,000x expected usage)
- ❌ Sustained 2-3.75GB usage even during idle periods
- ❌ No memory stabilization or garbage collection effectiveness
Memory Growth Pattern:
- ❌ Exponential growth continuing indefinitely
- ❌ No plateau or stabilization period
- ❌ Memory never released back to system
Energy Consumption - Actual
CPU Usage:
- ❌ Consistently maxed out energy usage rating
- ❌ High CPU usage even with idle tabs
- ❌ No reduction in energy consumption over time
Energy Impact:
- ❌ Sustained "High" energy impact throughout testing period
- ❌ Significant battery drain even during idle periods
- ❌ Thermal throttling and increased fan activity
Process Management - Actual
Tab Isolation:
- ❌ Memory leaks between tab processes
- ❌ Cascading memory allocation failures
- ❌ Process cleanup not functioning properly
Garbage Collection:
- ❌ Garbage collection cycles ineffective or not occurring
- ❌ Memory accumulation without cleanup
- ❌ JavaScript heap growing unbounded
Technical Evidence from Sample Analysis
Key Problematic Function Calls Identified:
- Memory allocation failures in WebKit rendering processes
- Excessive DOM node creation without proper garbage collection
- Tab process isolation creating memory leaks between processes
- JavaScript engine retaining objects beyond scope lifecycle
Critical Stack Traces:
- Multiple instances of memory allocation failures
- WebProcess consuming disproportionate memory
- GPU process memory not being released properly
- Network cache growing unbounded
Reproduction Steps
- Launch Orion RC with Orion+ enabled
- Open 65 tabs in single window
mixed media videos 1 video running Picture by Picture and the rest is static content
- Leave browser idle (no video playback or active interaction)
- Monitor via Activity Monitor for 1+ minute
- Observe memory growth and energy consumption
Impact Assessment
- Severity: Critical
- User Impact: System performance degradation, potential system instability
- Resource Waste: Excessive battery drain, thermal throttling
Please Review
- **Immediate: Implement memory allocation bounds checking
- Short-term: Review garbage collection cycles in WebKit integration
- Long-term: Optimize tab process isolation and memory sharing mechanisms
Additional Notes
- Issue persists across both Orion+ RC and regular release versions
- No sensitive user data exposed in provided samples
Performance Benchmarks Expected vs Actual
| Metric | Expected (65 tabs) | Actual | Variance |
| Shared Memory | 50-200MB | -16KB | Invalid state |
| Private Memory | 200-500MB | 2-3.75GB | 750-1875% increase |
| Peak Memory | 1-1.5GB | 425GB+ | 28,333%+ increase |
| Energy Rating | Low-Medium | High (maxed) | Critical |
| Stabilization Time | 2-3 minutes | Never | Infinite |
Private Memory Usage:
- Initial load: 200-500MB for 65 tabs (depending on content complexity)
- Stabilization: Should plateau within 2-3 minutes after page loads complete
- Idle state: Memory should decrease as inactive tabs are suspended
- Maximum reasonable usage: 1-1.5GB for 65 tabs on a 64GB system
Memory Growth Pattern:
- Initial spike during tab loading (first 30-60 seconds)
- Gradual stabilization as JavaScript execution completes
- Periodic small increases/decreases due to garbage collection cycles
- Long-term stability with minimal growth during idle periods
Energy Impact:
- "Low" to "Medium" energy impact rating after initial load
- Should not consistently show "High" energy usage for idle tabs
- Battery life impact should be minimal when browser is backgrounded
GPU Usage:
- Minimal GPU usage for static content
- Should release GPU resources when not actively rendering
Process Management - Expected
Tab Isolation:
- Each tab process should have defined memory boundaries
- Crashed tabs should not affect other tabs' memory allocation
- Process cleanup should occur when tabs are closed
Garbage Collection:
- Regular cleanup cycles every 30-60 seconds
- Memory should be returned to system after cleanup
- JavaScript heap should not grow indefinitely
Memory Management - Expected
Shared Memory Allocation:
- Should maintain positive values (typically 50-200MB for shared resources)
- Shared memory should contain common resources like fonts, cached images, and system libraries
- Should remain relatively stable after initial browser startup
Energy Consumption - Expected
CPU Usage:
- High during initial page loads (30-60 seconds)
- Should drop to <5% CPU usage when tabs are idle
- Periodic brief spikes for background tasks (every 5-10 minutes)