Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Optimize EDEngineer - #715

Open
Mc-Pain wants to merge 6 commits into
msarilar:masterfrom
Mc-Pain:work-optimization
Open

Optimize EDEngineer#715
Mc-Pain wants to merge 6 commits into
msarilar:masterfrom
Mc-Pain:work-optimization

Conversation

@Mc-Pain

@Mc-Pain Mc-Pain commented Dec 11, 2022

Copy link
Copy Markdown

ED Engineer operates very slow, especially on large shopping lists.

There are some bottlenecks and excessive operations when updating UI or importing/clearing shopping lists.

For example:
Multiple calling this.ToList(), which calculates a new object while we can store it somewhere if it's unchanged.
Updating UI or saving settings when importing or clearing shopping list (both are time expensive)

[source branch was renamed]

@Mc-Pain

Mc-Pain commented Dec 12, 2022

Copy link
Copy Markdown
Author

@msarilar There are some benchmarks:

Tried to apply a shopping list with every blueprint included 10 times with commit f1ec43c -- after 30 minutes application freezes (no GC happens, I heavily suspect OutOfMemoryException)

Given my optimizations, import took ~20 seconds if you had almost empty shopping list before and choose to clean it.

@msarilar

msarilar commented Dec 12, 2022 via email

Copy link
Copy Markdown
Owner

@Mc-Pain

Mc-Pain commented Dec 12, 2022

Copy link
Copy Markdown
Author

This should be resolved ASAP - that's why I took the attempt to optimize.

#646

@Mc-Pain

Mc-Pain commented Dec 20, 2022

Copy link
Copy Markdown
Author

ping?

@Mc-Pain

Mc-Pain commented Jan 12, 2023

Copy link
Copy Markdown
Author

@msarilar maybe your help is needed to optimize increment/decrement shopping list.

What happens exactly when user/EDEvent changes shopping list?
Profiler data led me that hottest path contains system code. I suspect heavily messing with events subsystem or unoptimal XAML handling

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants