-
Notifications
You must be signed in to change notification settings - Fork 10k
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
Reduce the size cost of unused protocol support #46681
Comments
Thanks for contacting us. We're moving this issue to the |
Step 1: Measuring. Do we have a sense for how big each of these components might be? |
I believe @eerhardt measured it for HTTPS |
Here are the current published .exe size numbers for the Windows - Notice that Linux is ~30% bigger than Windows. This is because on Linux, in order to support HTTPS, we need to use Now, if I hack out HTTPS support using bffa15c, and publish the same app, the numbers drop to: Windows - Now the difference in size is much smaller, only ~7%. This is because all of You can even tell from this picture that HTTP2 and 3 code is still in the hacked app. We could get even smaller if we removed those as well, if we felt necessary. |
I wonder how much performance we would get if we specialized the framework... like, you have a car and if get a flat, you're going to call AAA, but nevertheless you carry a jack, because one, "it came with the car" and two, "just in case you know"... but in the end of the day, your mileage/acceleration/tire-wear is worst because you are carrying that 25 pound thing... kinda like the same way linux created ultra slimmed versions that enabled the virtualization revolution |
We know there are use cases for Kestrel where things like HTTP/2 or /3, or even HTTPS, aren't necessary. For instance, you may not want HTTPS for a server that's run behind a TLS-terminated proxy.
Today, a published app that doesn't use TLS still carries around some extra dependencies that are used only for TLS support. We should explore what we can do to minimize this cost.
The text was updated successfully, but these errors were encountered: