APickledWalrus / skript-placeholders

Placeholder integration for Skript.
GNU General Public License v3.0
28 stars 8 forks source link

TAB plugin RAM usage sky-rockets. #50

Closed Skyy2K closed 6 months ago

Skyy2K commented 9 months ago

Description

I use PlaceholderAPI and skript-placeholders (obvious), along with TAB to create a nice, swift tab & scoreboard. However, with only just the placeholders that I register with Skript, the RAM usage on /tab cpu always absolutely sky-rockets, above 100%. I'd figure this could be a problem with TAB, however its again, only skript-placeholders registered placeholders.

Steps to Reproduce

on papi request with prefix "test":
  if identifer is "placeholder": # "test_placeholder" being the placeholder
    set the result to "test works"

Placeholders registered, now if I were to use it with TAB, (don't have a picture at the current moment) and on /tab cpu, the total usage was fully overloading, going over 100%. The top 5 placeholders were all my registered Skript placeholders.

Expected Behavior

Placeholders to not take up so much RAM... and be as any regular placeholder (using being below 1% for each placeholder, which is the expected behaviour)

Errors / Screenshots

Currently no erros or screenshots, will update if I get a chance to replicate it (currently using Skript's scoreboard as a temporary solution)

Server Information

Additional Context

None

APickledWalrus commented 9 months ago

This seems to be an issue that has occurred starting in 2.7 (potentially after beta 2). I am looking into it :)

Skyy2K commented 9 months ago

I see, it normally happened in Skript 2.6.4 as well however, I just never thought of reporting it, hoping for it to fix. Though please do whatever you can :) For me at least, the server is in development and have loads of time.

Skyy2K commented 9 months ago
image

Heya! Update, this is just with 1 player (me) in the server, quiet high, but with around 4-5 or 10 instantly goes over 100. All top 5 placeholders are ones registered with Skript.

ZConnorZ commented 9 months ago

I have same problem!

Skyy2K commented 9 months ago

Any update so far? Turns out we don't have too much time but if possible, please let me know of any build so far fixing it?

MadPanCake commented 9 months ago

I have noticed this too. It started to happen after I've updated to Skript 2.7.1 and is still an issue on Skript 2.7.2

I've tried to make it better with adjusting refresh-intervals in TAB config, but some placeholders just have to be updated frequently, like location or something that should be dynamically displayed. I went from 230% CPU usage to 9% per player, but that's still high enough that the TAB's built-in animations start to lag. And will kill my server whenever more players join :(

I'm using: Latest Skript 2.7.2 Latest skript-placeholders Latest Paper 1.20.1

Temporary workaround: Go back to Skript 2.6.4 @Skyy2K @ZConnorZ

APickledWalrus commented 9 months ago

I haven't made much progress yet, sorry. I will try and work on it this week :)

Skyy2K commented 9 months ago

Using local functions & multiline conditions in my current production server so downgrading to Skript 2.6.4 isn't an option necessarily, also I still did face this with 2.6.4 so...

APickledWalrus commented 9 months ago

Was the issue as severe in 2.6.X versions? These placeholders will perform worse than others as there will always be an increase in hardware usage/time with Skript. What kind of hardware is your server using?

Skyy2K commented 9 months ago

Yep, once had around 30 players and that's when TAB finally crashed with Skript 2.6.4.

APickledWalrus commented 9 months ago

I have some ideas for performance optimizations. I'll have more to share soon :)

Also, what are you using for your refresh rate?

Skyy2K commented 9 months ago

1 second, I did often switch from 5-10 seconds as well but at the point it seemed too slow for somewhat reason.

Would gladly appreciate any ideas to properly configure some optimizations!

MadPanCake commented 9 months ago

On 2.6.4, it works alright for me, the CPU usages is less than 0.1% per placeholder. On 2.7.2 the same placeholder will creep up even to 4%.

APickledWalrus commented 8 months ago

I will be conducting my own testing (to the extent that I can), but here is the developer build for the upcoming 2.6 release. I have made some changes to hopefully improve performance. NOTE THAT THIS VERSION REQUIRES SKRIPT 2.7.2. You can download the nightly build here: https://github.com/APickledWalrus/skript-placeholders/suites/18424532313/artifacts/1067899285 (you will need to be signed in)

I ran some minor tests which indicated that the addon is working as expected, but it is possible that you may encounter errors as this is a developer build. Please let me know if you see any improvements or run into any issues (if you are able to test).

MagneBossen commented 8 months ago

From my Testing with Pickle's new dev build, its alot better, it certinly has fixed my CPU Usage issues with TAB, i went from using 20s refresh delay with around 1.5-2% usage for 2 player to 5s refresh delay with only 0.05-6% usage with 2 players

APickledWalrus commented 8 months ago

I have confirmed that this issue is partly on this addon and partly on Skript. Skript made changes to event execution that this addon needs to handle. However, even when correctly handling these changes on a modified version of 1.5.2, there is still a significant difference in previous performance.

Due to the changes in 1.6, Skript's event execution process is no longer involved which is why the performance is normal (if not slightly better)

Thank you to everyone who contributed performance metrics. I am going to mark this issue as completed for the next release. Please feel free to update her if you encounter any issues with the 1.6 nightly build.

czychuuu commented 7 months ago

I have confirmed that this issue is partly on this addon and partly on Skript. Skript made changes to event execution that this addon needs to handle. However, even when correctly handling these changes on a modified version of 1.5.2, there is still a significant difference in previous performance.

Due to the changes in 1.6, Skript's event execution process is no longer involved which is why the performance is normal (if not slightly better)

Thank you to everyone who contributed performance metrics. I am going to mark this issue as completed for the next release. Please feel free to update her if you encounter any issues with the 1.6 nightly build.

any eta on a fix?