-
Notifications
You must be signed in to change notification settings - Fork 252
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
Package Manager UI loads all registration pages #8058
Comments
Basically this proposal moves the initial load from taking the perf hit to the having the switching of versions take the perf hit. What we perceive an average user behavior on the search page, should impact the decision here. |
This is not necessarily true. Several popular packages have over a thousand versions, resulting in 16+ registration pages (each page contains 64 versions). The current implementation needs at least 17 HTTP requests (1 registration index + 16 registration pages). My suggestion would cut that down to 2 requests for the most common customer scenarios. Assuming reasonably fast response times of 200ms and no caching, this suggestion would save 3+ seconds to browse popular packages like FAKE or AWS SDK. The effect would be even more dramatic for customers that aren't in North America (especially India, Australia, Brazil). |
Long time dup of #2495, I just didn't find it back then.. |
Reopening this one in favor of its details over #2495 . |
Another related issue #8492 |
I made a tool to help estimate response sizes if we removed paging from the registration API altogether. The resulting registration indexes had the following size on disk after gzip compression:
In other words, it appears that paging is unnecessary for 99.99% of packages on nuget.org. An alternative solution to this problem could be to shove more package versions in each registration page. |
Found yet another dup of this. I want to dup this to #4448? |
@loic-sharma Is the paging strategy the number of versions right now? I think the client should be a bit more resilient anyways. |
Yup, today we page a package's registration once it has over 128 versions. We create a page for each chunk of 64 versions. |
Currently the deprecation experience calls for a deprecated message in the drop down when looking at the version list. edit |
We can technically do the work on the client side, and just only consider it implemented when the server side change goes in. |
Lowering to priority 3. |
Details about Problem
Visual Studio's 2019's Package Manager UI is very slow to load packages with many versions. This happens because Visual Studio loads the metadata for all versions of the package immediately.
Suggestion
Ideally, Visual Studio's UI should only do up to three requests:
versions
field.The differences between this suggestion and the current implementation:
/cc @dtivel @nkolev92
Detailed repro steps so we can see the same problem
Blocked by NuGet/NuGetGallery#8067.
The text was updated successfully, but these errors were encountered: