Skip to content

Conversation

@AmmarAbouZor
Copy link
Member

This PR improves the performance and the remove lagging in the UI in cases where search is active alongside with parsing incoming data by moving search processing CPU intensive blocks to another task to avoid blocking session state while these searches are done. Also, it uses block_in_place() from tokio to avoid blocking the runtime on such CPU intensive tasks.

These changes improve the performance up to 1.40x on parsing DLT files (500 MB) while a filter is applied:

Scenario Time (ms) Improvement vs Master Speedup vs Master
Parsing with no filters 4836
Parsing with filters (This PR) 5037 +28.31% 1.40x
Parsing with filters (Current Master) 7026 - 1.00x

These changes significantly reduce UI lag when filtering live data streams, such as process output or DLT over TCP/UDP

@AmmarAbouZor
Copy link
Member Author

I've successfully run lint and test CI commands locally. The CI is failing because of issues related to GitHub Actions and not the changes in this PR

@AmmarAbouZor AmmarAbouZor force-pushed the separate-searchers branch 3 times, most recently from d9eba07 to 8ac990c Compare December 17, 2025 08:14
Copy link
Collaborator

@itsmesamster itsmesamster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested the changes, works fine on macOS arm64.

Search request are CPU intensive and will block the async runtime
especially if run with parsing in the same time (For example in
big DLT files) causing the app to lag.

Also I've added block_in_place in places where we expecting the code to
block due to intense CPU processes.
@AmmarAbouZor
Copy link
Member Author

Now it's running on CI checks as well after fixing the problem with caching

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants