Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Item properties performance #199

Merged
merged 2 commits into from
Aug 3, 2019
Merged

Conversation

reupen
Copy link
Owner

@reupen reupen commented Aug 2, 2019

This significantly improves performance when refreshing the contents of the Item properties panel for large selections.

Refresh times can be as little as 20% of the time taken prior to these changes. This results in a general UI responsiveness improvement, in particular when using library viewers.

Improvements were made partly by removing unneeded processing, and partly by using parallelism.

As a result of these changes, metadata field values are no longer sorted (which was already inconsistent with the rest of foobar2000).

The sort order of track property sections was also corrected.

This significantly improves performance when refreshing the contents of the Item properties panel for large selections.

Refresh times can be as little as 20% of the time taken prior to these changes. This results in a general UI responsiveness improvement, in particular when using library viewers.

Improvements were made partly by removing unneeded processing, and partly by using parallelism.

As a result of these changes, metadata field values are no longer sorted (which was already inconsistent with the rest of foobar2000).

The sort order of track property sections was also corrected.
@reupen reupen marked this pull request as ready for review August 3, 2019 12:15
@reupen reupen merged commit 82118ca into master Aug 3, 2019
@reupen reupen deleted the improve-item-props-perf branch August 3, 2019 12:15
reupen added a commit that referenced this pull request Aug 4, 2019
This was a result of the changes in #199. `track_property_provider_v3` expects provided `metadb_info_container` objects to be non-null and there is a subtle difference in behaviour between the `metadb_handle::get_info_ref()` overloads.

Now, invalid `metadb_info_container::ptr` objects are avoided completely.
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.

1 participant