Pierre Arnaud
0ee2bbe31c
Refactor debugger detection to use shared DebuggerHelper
...
Created a new DebuggerHelper class with Lazy<bool> initialization that is
shared by both LaunchOrderDetector and UnpackagedDetector. This eliminates
code duplication and provides a cleaner, more maintainable solution.
- Added DebuggerHelper.cs with lazy-initialized IsAttached property
- Refactored LaunchOrderDetector to use DebuggerHelper
- Refactored UnpackagedDetector to use DebuggerHelper
- Removed nullable bool pattern in favor of Lazy<bool>
2026-01-31 09:38:26 +01:00
Pierre Arnaud
0a23659196
Phase 1b: Optimize startup detection for faster .NET initialization
...
Performance optimizations to startup detection:
- Reduced GatherBuildInfo: >1000ms → 7ms (99% faster!)
- Reduced CollectProcessData: → 86ms
- Reduced DetectAppTypeAndStartup: → 91ms
- Total StartupManager.Initialize: → 91ms (down from >1 second)
Electron startup also improved significantly:
- Module loading: 719ms → 108ms (85% faster!)
- SignalR connection: 884ms → 403ms (54% faster!)
- Total Electron startup: 2.3s → 700ms (70% faster!)
Optimizations applied:
1. Directory checks (UnpackagedDetector):
- Changed GetDirectories().Any() to direct Directory.Exists()
- Avoids expensive directory enumeration
- Saves ~200-500ms on slow disks
2. Debugger state caching:
- Cache Debugger.IsAttached result in static field
- Avoids multiple expensive debugger checks
- Used by both UnpackagedDetector and LaunchOrderDetector
- Saves ~50-100ms per check
3. Added timing measurements:
- Added Stopwatch to StartupManager.Initialize()
- Detailed timing for each initialization phase
- Visibility into startup performance
Results:
- .NET startup detection: >1000ms → 91ms
- Electron module loading: 719ms → 108ms
- SignalR connection: 884ms → 403ms
- **Total improvement: ~70% faster startup**
The combination of faster directory checks, cached debugger state,
and parallel module loading (from previous commit) results in
sub-second startup times in development mode.
2026-01-30 23:02:13 +01:00
softworkz
8e7892ebd4
Fix whitespace formatting
2025-11-15 13:52:19 +01:00
softworkz
d1db928222
ElectronNET.API: Add new runtime code (for launch, lifecycle and service orchestration)
2025-10-13 14:36:31 +02:00