Skip to content

Consider changing the defaults between IIS Express vs Kestrel in VS #27277

Closed

Description

@mkArtakMSFT
  • Calculate cost of IIS Express for both Debug and Release, F5 vs CTRL F5, for startup time.
  • Figure out feature differences between them.

Activity

  1. added this to the Next sprint planning milestone on Nov 4, 2020
  2. shirhatti commented on Jan 6, 2021

    @shirhatti
    Contributor
      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

    Details

    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
    
  3. jkotalik commented on Jan 14, 2021

    @jkotalik
    Contributor

    @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.

  4. jkotalik commented on Jan 14, 2021

    @jkotalik
    Contributor

    Nvrm, apparently I needed to modify the process audit example to have the right app name for the Kestrel F5 scenario. My bad!

  5. jkotalik commented on Jan 26, 2021

    @jkotalik
    Contributor

    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.

    image

  6. jkotalik commented on Feb 10, 2021

    @jkotalik
    Contributor

    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.

  7. sayedihashimi commented on Feb 10, 2021

    @sayedihashimi
    Contributor

    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.

  8. jkotalik commented on Feb 10, 2021

    @jkotalik
    Contributor

    It may be part of the websdk then. When you run dotnet new web on command line, a launchsettings.json is generated.

  9. sayedihashimi commented on Feb 10, 2021

    @sayedihashimi
    Contributor

    @jkotalik ok, maybe things have changed. Bill will know what the correct steps are when we meet with him.

  10. BillHiebert commented on Feb 11, 2021

    @BillHiebert

    @sayedihashimi launchsettings.json is defined in the templates, the first entry becomes the default. @phenning to confirm

  11. jkotalik commented on Mar 24, 2021

    @jkotalik
    Contributor

    Need to follow up with web tool folks to figure out any other places we generate or implicitly create a launchsettings.json file.

  12. phenning commented on Mar 24, 2021

    @phenning
    Member

    @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

  13. jkotalik commented on Mar 24, 2021

    @jkotalik
    Contributor

    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

  14. davidfowl commented on Mar 30, 2021

    @davidfowl
    Member

    This is done right @jkotalik ?

  15. jkotalik commented on Mar 31, 2021

    @jkotalik
    Contributor

    I think this is done on our side.

  16. ghost locked as resolved and limited conversation to collaborators on Apr 30, 2021
  17. added
    area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
    and removed on Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Theme: inner-loopaffected-mostThis issue impacts most of the customersarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsenhancementThis issue represents an ask for new feature or an enhancement to an existing oneseverity-nice-to-haveThis label is used by an internal tool

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions