Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the purpose of this pull request? (put "X" next to an item, remove the rest)
• [x] Other, please explain: performance
Fully fixes #1243
Follow up to #1245 (comment)
What is the rationale for this request?
The puml plugin generated-diagram-tracking is ineffective as the data structure is cleared during
preRender
, which is called per page.Let's add a per site (re)generation plugin hook to solve this
What changes did you make? (Give an overview)
beforeSiteGenerate
hookTesting instructions:
The number of jvms spawned should only be the total number of puml definitions
Proposed commit message: (wrap lines at 72 characters)
Fix redundant puml jvm processes
The puml plugin tracks generated puml images, and does not regenerate
them if the same image has already been generated.
However, the Set data structure that tracks this is cleared during each
call of the plugin preRender hook, which is called per page.
Multiple pages may reference the same diagram, making the tracking
ineffective.
Let's add a new plugin hook, beforeSiteGenerate, that is called during
initial site generation and site regeneration during live preview.
This allows plugins to maintain and clear state during site
(re)generation.
Let's implement this hook in the puml plugin, and clear the Set data
structure in it instead, which properly tracks the generated puml
images.