feat/fix: Enhance stability and optimize performance for MSI Afterburner monitoring#5
Open
R0bles wants to merge 1 commit into
Open
feat/fix: Enhance stability and optimize performance for MSI Afterburner monitoring#5R0bles wants to merge 1 commit into
R0bles wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
📝 Description
This PR introduces a series of critical stability fixes to prevent silent application crashes and implements several performance optimizations to reduce the system footprint. The main goal was to resolve OS-level Access Violations and improve the efficiency of the event-driven monitoring system.
🛠️ Technical Changes
Stability & Robustness
syscall.NewCallbackcreation with a static global callback (enumCallback) inwatcher/watcher.goto prevent memory instability and Access Violations.defer recover()blocks within Windows API callbacks to ensure that any internal panic is logged without terminating the entire process.main.go, allowing the script to remain active even when MSI Afterburner is not running.Performance & Resource Optimization
event_throttle_mstoconfig.jsonandconfig/config.goto prevent CPU spikes during rapid window state changes. Testing showed that values between 200ms and 400ms are optimal for maintaining responsiveness without missing events; therefore, a default of 200ms was implemented.Debug
🧪 How to Test
event_throttle_msnow effectively limits these spikes.✅ Checklist
🔗 Related Issue