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

Optimisations #185

Open
Pheotis opened this issue Jun 6, 2022 · 3 comments
Open

Optimisations #185

Pheotis opened this issue Jun 6, 2022 · 3 comments
Labels
enhancement A suggested addition to the plugin. On Hold! Something is currently preventing us from working on this; we will work on it when we can! REWRITE This task/issue only applies to the rewritten version of the plugin (currently in ALPHA)

Comments

@Pheotis
Copy link

Pheotis commented Jun 6, 2022

The plugin has now been in development for over a year and a half.
Although it is approaching functional completing, it has become somewhat slow.

Potential code optimisations will be tracked in the comments of this issue.
They will be addressed as milestone 1.1.0.0

@Pheotis Pheotis added enhancement A suggested addition to the plugin. On Hold! Something is currently preventing us from working on this; we will work on it when we can! labels Jun 6, 2022
@Pheotis Pheotis added this to the 0.1.0.0 milestone Jun 6, 2022
@Pheotis Pheotis mentioned this issue Jun 6, 2022
2 tasks
@EpicKnarvik97
Copy link
Collaborator

From what I've experienced, changing the permission to use strings removed a lot of sluggishness in the plugin. Still, for large servers, there are probably more optimizations avilable. Looking at timings, it seems the synchronous populator and the block break listener are the slowest parts of the plugin.

Skjermbilde

@Thorinwasher
Copy link

Got any ideas on how to increase the performance of the synchronous populator?

Maybe like a return statement if the queue to cycle through is empty?

When does this performance readings come from btw, is it during startup?

@EpicKnarvik97
Copy link
Collaborator

EpicKnarvik97 commented Jun 7, 2022

Got any ideas on how to increase the performance of the synchronous populator?

Maybe like a return statement if the queue to cycle through is empty?

When does this performance readings come from btw, is it during startup?

The most obvious optimization, if possible, would be to make it asynchronous. Most lag from the Synchronous populator is probably the same kind of lag caused by WorldEdit.
I don't see any wasted effort when the block queue is run through, but we probably need to do a big-O analysis to be certain if things can be improved.

I think the performance timings are a thing added by Paper. I didn't find it until switching to paper. You use /timings on, then do a bunch of stuff for at least 5 minutes before using /timings paste to get a performance report.

@Pheotis Pheotis modified the milestones: 1.1.0.0, Near-Future (1.1.X.X) Jan 2, 2023
@Pheotis Pheotis added the REWRITE This task/issue only applies to the rewritten version of the plugin (currently in ALPHA) label Mar 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A suggested addition to the plugin. On Hold! Something is currently preventing us from working on this; we will work on it when we can! REWRITE This task/issue only applies to the rewritten version of the plugin (currently in ALPHA)
Projects
Development

No branches or pull requests

3 participants