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

Hook Creation congests locks for heavy delays #1591

Open
Ottermandias opened this issue Dec 25, 2023 · 0 comments
Open

Hook Creation congests locks for heavy delays #1591

Ottermandias opened this issue Dec 25, 2023 · 0 comments

Comments

@Ottermandias
Copy link
Contributor

Ottermandias commented Dec 25, 2023

As requested, an issue:
It seems like having multiple plugins creating hooks on construction delays the individual plugins heavily, at least on my system.
Using DotTrace shows that about 99% of the time of ReloadedHook.ctor is being spent waiting for locks for me.
This is rather variable though. In some instances creating single hooks has a delay of over 2 seconds, sometimes it just takes 200 ms (as is to be expected for this type of problem, I guess).

I'm running current regular release Dalamud and

First Party

  • Allagan Tools
  • Death Recap
  • ezFauxHollows
  • ezMiniCactpot
  • ItemSearch
  • Mimicry Helper
  • Paissa House
  • Pixel Perfect
  • Price Check
  • QoL Bar
  • Repair Me
  • Simple Tweaks
  • Target Furniture
  • Teleporter
  • TriadBuddy
  • Wotsit

Own Plugins (in Debug, Dev mode)

  • Accountant
  • ChatAlerts
  • GatherBuddy
  • Glamourer
  • Penumbra
  • RezPls

Third Party

  • Brio (unused, for testing)
  • Customize+ (no personal config, just for testing/mare)
  • Heliosphere (some mods installed)
  • Ktisis (unused, for testing)
  • Mare Synchronos (shouldn't matter, don't think this hooks)
  • Palette+(no personal config, just for testing/mare)
  • SimpleHeels (no personal config, just for testing/mare)

I'm also launching ACT with XIV through the launcher. I don't have any antivirus software except Windows Defender, and nothing else that, to my knowledge, would interfer with launching the game.

I doubt that the specific set of plugins is in any way relevant, just the amount of them creating hooks during construction.
I am specifically watching my Glamourer load times and they fluctuate from 5 seconds (if all the hooking services behave as expected and are created really fast) to almost 20 seconds.

This is the total time of ReloadedHook.ctor in one such launch:
image

And this was a specific hook service that took 2 seconds in this launch:
image

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

No branches or pull requests

1 participant