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

Performance of different graphviz engines #286

Closed
2 tasks done
manikmagar opened this issue Oct 20, 2022 · 0 comments · Fixed by #287
Closed
2 tasks done

Performance of different graphviz engines #286

manikmagar opened this issue Oct 20, 2022 · 0 comments · Fixed by #287

Comments

@manikmagar
Copy link
Owner

manikmagar commented Oct 20, 2022

PR #278 changed the order of available engines to fix execution failure on Apple Silicon. Current order is of engine available check is - V8, JDK, CMD line (dot). V8 engine is usually slower but JDK (Nashorn, default for silicon) is much slower. CMD line (dot engine) is much faster compared to both.

  • With JDK Nashorn Engine - Takes 6.5 seconds to generate a simple diagram.
2022-10-20 07:27:52,321 INFO  [c.j.m.DiagramRenderer] - Initiating drawing Graph at .
2022-10-20 07:27:58,618 INFO  [c.j.m.DiagramRenderer] - Generated Graph at ~/test-api/./mule-diagram.png
  • With CMD line (dot engine) - Takes 0.5 seconds to generate the same diagram.
2022-10-20 07:28:10,192 INFO  [c.j.m.DiagramRenderer] - Initiating drawing Graph at .
2022-10-20 07:28:10,945 INFO  [c.j.m.DiagramRenderer] - Generated Graph at /Users/mmagar/devlife/avio/codebase/test-api/./dot-mule-diagram.png

CMD line (dot engine) requires Graphviz Dot engine installed on the target machine. I guess the default fallback order of - CMD, V8, JDK is better if CMD engine to be used when available.

  • Use default engine order when loading Graphviz Engines.
  • Update tests to use a specific graph engine that is used for pre-generated output json samples.
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

Successfully merging a pull request may close this issue.

1 participant