Consider changing the defaults between IIS Express vs Kestrel in VS
mkArtakMSFT opened this issue · 15 comments
- Calculate cost of IIS Express for both Debug and Release, F5 vs CTRL F5, for startup time.
- Figure out feature differences between them.
Thanks for contacting us.
We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We will evaluate the request when we are planning the work for the next milestone. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.
| Sample 1 | Sample 2 | Sample 3 | Sample 4 | Sample 5 | Average (ms) | Std Deviation- Sample (ms) | |
|---|---|---|---|---|---|---|---|
| IIS Express- F5 | 4488.525 | 4233.031 | 4157.722 | 4640.92 | 4275.969 | 4359.23336 | 199.7063997 |
| Kestrel- F5 | 3491.112 | 3009.8 | 1628.884 | 2835.401 | 2892.896 | 2771.61864 | 689.0245524 |
| IIS Express- Ctrl+F5 | 2077.545 | 1961.494 | 1964.514 | 1958.454 | 2030.64 | 1998.52938 | 53.40726911 |
| Kestrel- Ctrl+F5 | 726.3475 | 718.6789 | 730.5764 | 729.79 | 729.2783 | 726.93422 | 4.883907612 |
Calculated using https://github.com/shirhatti/processaudit
IIS Express- F5
Process/Start 2021-01-05T19:47:06.4792562-08:00 iisexpress
HostStart/Start 2021-01-05T19:47:10.8586257-08:00 iisexpress
RequestStart/Start 2021-01-05T19:47:10.9677814-08:00 iisexpress
Process/Start 2021-01-05T19:47:14.3839239-08:00 iisexpress
HostStart/Start 2021-01-05T19:47:18.4926723-08:00 iisexpress
RequestStart/Start 2021-01-05T19:47:18.6169548-08:00 iisexpress
Process/Start 2021-01-05T19:47:22.4438476-08:00 iisexpress
HostStart/Start 2021-01-05T19:47:26.4770368-08:00 iisexpress
RequestStart/Start 2021-01-05T19:47:26.6015692-08:00 iisexpress
Process/Start 2021-01-05T19:47:32.4910626-08:00 iisexpress
HostStart/Start 2021-01-05T19:47:37.0121454-08:00 iisexpress
RequestStart/Start 2021-01-05T19:47:37.1319824-08:00 iisexpress
Process/Start 2021-01-05T19:47:40.6837155-08:00 iisexpress
HostStart/Start 2021-01-05T19:47:44.8214682-08:00 iisexpress
RequestStart/Start 2021-01-05T19:47:44.9596848-08:00 iisexpress
4488.5252,4233.0309,4157.7216,4640.9198,4275.9693
IIS Express- Ctrl+F5
Process/Start 2021-01-05T19:49:28.4908748-08:00 iisexpress
HostStart/Start 2021-01-05T19:49:30.5417439-08:00 iisexpress
RequestStart/Start 2021-01-05T19:49:30.5684200-08:00 iisexpress
Process/Start 2021-01-05T19:49:37.6048547-08:00 iisexpress
HostStart/Start 2021-01-05T19:49:39.5464717-08:00 iisexpress
RequestStart/Start 2021-01-05T19:49:39.5663488-08:00 iisexpress
Process/Start 2021-01-05T19:49:45.5071357-08:00 iisexpress
HostStart/Start 2021-01-05T19:49:47.4533663-08:00 iisexpress
RequestStart/Start 2021-01-05T19:49:47.4716496-08:00 iisexpress
Process/Start 2021-01-05T19:49:50.8130059-08:00 iisexpress
HostStart/Start 2021-01-05T19:49:52.7516877-08:00 iisexpress
RequestStart/Start 2021-01-05T19:49:52.7714594-08:00 iisexpress
Process/Start 2021-01-05T19:49:57.2708380-08:00 iisexpress
HostStart/Start 2021-01-05T19:49:59.2827210-08:00 iisexpress
RequestStart/Start 2021-01-05T19:49:59.3014782-08:00 iisexpress
2077.5452,1961.4941,1964.5139,1958.4535,2030.6402
Kestrel- F5
Process/Start 2021-01-05T19:52:00.1557415-08:00 Timings
HostStart/Start 2021-01-05T19:52:02.0314622-08:00 Timings
RequestStart/Start 2021-01-05T19:52:03.6468534-08:00 Timings
Process/Start 2021-01-05T19:52:13.6975968-08:00 Timings
HostStart/Start 2021-01-05T19:52:15.2602723-08:00 Timings
RequestStart/Start 2021-01-05T19:52:16.7073969-08:00 Timings
Process/Start 2021-01-05T19:52:19.1274063-08:00 Timings
HostStart/Start 2021-01-05T19:52:20.4249394-08:00 Timings
RequestStart/Start 2021-01-05T19:52:20.7562905-08:00 Timings
Process/Start 2021-01-05T19:52:23.1473057-08:00 Timings
HostStart/Start 2021-01-05T19:52:24.2801725-08:00 Timings
RequestStart/Start 2021-01-05T19:52:25.9827068-08:00 Timings
Process/Start 2021-01-05T19:52:28.1533240-08:00 Timings
HostStart/Start 2021-01-05T19:52:29.4302469-08:00 Timings
RequestStart/Start 2021-01-05T19:52:31.0462199-08:00 Timings
3491.1119,3009.8001,1628.8842,2835.4011,2892.8959
Kestrel- Ctrl+F5
Process/Start 2021-01-05T19:50:32.0470546-08:00 Timings
HostStart/Start 2021-01-05T19:50:32.2286960-08:00 Timings
RequestStart/Start 2021-01-05T19:50:32.7734021-08:00 Timings
Process/Start 2021-01-05T19:50:35.3528319-08:00 Timings
HostStart/Start 2021-01-05T19:50:35.5134593-08:00 Timings
RequestStart/Start 2021-01-05T19:50:36.0715108-08:00 Timings
Process/Start 2021-01-05T19:50:39.5221784-08:00 Timings
HostStart/Start 2021-01-05T19:50:39.6840005-08:00 Timings
RequestStart/Start 2021-01-05T19:50:40.2527548-08:00 Timings
Process/Start 2021-01-05T19:50:43.3084716-08:00 Timings
HostStart/Start 2021-01-05T19:50:43.4686276-08:00 Timings
RequestStart/Start 2021-01-05T19:50:44.0382616-08:00 Timings
Process/Start 2021-01-05T19:50:46.9270852-08:00 Timings
HostStart/Start 2021-01-05T19:50:47.0872181-08:00 Timings
RequestStart/Start 2021-01-05T19:50:47.6563635-08:00 Timings
726.3475,718.6789,730.5764,729.79,729.2783
@shirhatti I'm a little concerned that the Kestrel F5 scenarios aren't including the time for .NET starting, as you are looking for host start as the event to start timing here: https://github.com/shirhatti/ProcessAudit/blob/main/Program.cs#L37.
Nvrm, apparently I needed to modify the process audit example to have the right app name for the Kestrel F5 scenario. My bad!
I ran a twitter poll around IIS Express VS Kestrel, and overwhelmingly it leaned to making Kestrel the default. https://twitter.com/JustinKotalik/status/1352314886810812417.
We met with @vijayrkn and @sayedihashimi and it sounds like we will reach out to @BillHiebert in March to see if he has capacity to implement this in VS.
#27463 for details on one feature we'd add to VS.
Besides that, I believe all of the other required work is switching the templates to have Kestrel first.
I don't think any template change will impact this, launchSettings.json isn't a part of the template. It is auto generated by Visual Studio.
It may be part of the websdk then. When you run dotnet new web on command line, a launchsettings.json is generated.
@jkotalik ok, maybe things have changed. Bill will know what the correct steps are when we meet with him.
@sayedihashimi launchsettings.json is defined in the templates, the first entry becomes the default. @phenning to confirm
Need to follow up with web tool folks to figure out any other places we generate or implicitly create a launchsettings.json file.
@BillHiebert Don't we also generate a launchsettings.json from the project system if the template does not already have one?
It looks like you guys already have the template change here:
https://github.com/dotnet/aspnetcore/blob/main/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Properties/launchSettings.json
Yeah, the previous PR I just merged handled the templates. I filed an issue in the web tools azdo repo for generation of launchsettings.json
I think this is done on our side.
