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

Interface performance problem #161

Open
Herrick19 opened this issue Nov 4, 2022 · 2 comments
Open

Interface performance problem #161

Herrick19 opened this issue Nov 4, 2022 · 2 comments

Comments

@Herrick19
Copy link

Hi,

We've been using apicurito since a couple of years and like it very much. We grew from a couple of endpoints and been continuously adding endpoints since then.

The more and more we add, the slower and slower apicurito became. Now we are at a point where it's mostly not usable anymore :(

For example, simply changing the version number, or changing the text of a tag can take 15-20 seconds.

I'm suspecting the problem comes from the fact we use a lot of inheritance and references in our objects, but I might be wrong.

Could you try loading our openapi spec in apicurito by going to:
https://www.apicur.io/apicurito/pwa/
And opening this URL:
https://raw.githubusercontent.com/eZmaxinc/eZmax-API/master/specs/ezmax.v1.1.json

and experiment it by doing simple changes:
1- Change the version number
2- Modify the tag General_Changelog (If you move with keyboard arrows it's not that bad, if you move around by clicking with the mouse it's terrible)

We tried with many browsers (Chrome, Firefox, Edge) and many computers and it's always slow.

I'm suspecting there are events that are triggered too often doing too much and they just need to be called less often (but I might be wrong).

I have this suspicion because when you click around in a text area (see my point #2 below), there shouldn't be any complexity beside moving the cursor around, it's not normal that the browser freezes for 5-10 seconds each time we click.

If you can test it out, please let me know if:
1- There is hope of a simple fix on the apicurito side
2- If you see the problem and we can easily bypass it by changing our definition
3- If we can help in any way to fix the issue
4- If apicurito is still a maintained project (since there was no release since 2020)

Thanks in advance

@Herrick19
Copy link
Author

Herrick19 commented Nov 4, 2022

A comment I would like to add:
If on the filter box, you filter out for something that reduces the number of endpoints in the left point, the interface speeds up to a point that is usable again.

This is another reason why I think you have "events" doing too much processing on every action, maybe to update a counter or something.

Hope it helps

@EricWittmann
Copy link
Member

Thanks for the comment. Yes you are right - the performance degradation for large specifications is a known problem. I've done a fair bit of work trying to optimize (using angular techniques) the state/ui reconciliation to improve performance. It has helped but still isn't enough.

The future of the editor is likely going to be a re-write using React. Hopefully rewriting it will allow us to streamline it, and perhaps using React will result in better performance.

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

2 participants