Commit Graph

40898 Commits

Author SHA1 Message Date
Ryan Nowak 42acfe43ad Fix aspnet/Mvc#3196 Razor Compilation Allocations
This change significantly reduces the amount of string and List<ISymbol>
allocations that occur during compilation by changing the way
LiteralChunks are combined.

This is a low impact fix that addresses the performance issue, the design
issues that caused it still exist.

The problem here lies in what Razor fundamentally does - it parses HTML/C#
into tokens, and then combines them back into 'chunks' a representation
friendly to code generation. When presenting with a large block of static
HTML, Razor parses it into individual HTML tokens, and then tries to join
them in back into a single chunk for rendering. Due to details of Razor's
representation of chunks/tokens, the process of combining literals is too
expensive.

Mainly, what's done here is to not try to combine instances of
LiteralChunk. The process of merging them is too expensive and requires
lots of interm List<ISymbol> and string allocations.

Instead we produce a new 'chunk' ParentLiteralChunk, which doesn't do so
much up-front computing. Various pieces of the code that deal with
LiteralChunk need to be updated to deal with ParentLiteralChunk also,
which is the bulk of the changes here.

Note that we still have the potential for LOH allocations to occur during
codegen, but it's likely to occur O(1) for each large block of HTML
instead of O(N) as it did in the old code.
2015-11-18 12:51:11 -08:00
Pavel Krymets 09f54d6857 Fix build 2015-11-18 12:38:28 -08:00
Pranav K 78e90d7f04 Update ifdefs from DNXCORE50 to DOTNET5_4
Fixes #467
2015-11-18 12:29:47 -08:00
Doug Bunting b3c68defe8 Change `IViewComponentHelper` methods to return `IHtmlContent`
- #3152
2015-11-18 12:21:39 -08:00
glennc 55692574b4 Missed saving the change to helloMVC. 2015-11-18 12:03:14 -08:00
Pavel Krymets c48173c948 Add event ids to all log calls 2015-11-18 11:36:15 -08:00
Pavel Krymets 8ee803d255 Handle Remote header with ip and port correctly 2015-11-18 11:10:27 -08:00
glennc 43076b8f95 Merge branch 'dev' of github.com:aspnet/Home into dev 2015-11-18 11:01:52 -08:00
glennc 2337043e92 change kestrel to listen on * 2015-11-18 11:01:37 -08:00
Master T 3c1b759750 Merge pull request #485 from tmds:dev
Convert Environment Ticks to TimeSpan Ticks
2015-11-18 10:57:05 -08:00
Kiran Challa 85080ae621 Make Cors filters run before any other authorization filters 2015-11-18 10:51:49 -08:00
ASP.NET Push Bot c4252f63f8 ⬆️ dnvm.ps1, dnvm.cmd, dnvm.sh
Source: aspnet/dnvm@c8894c5424
2015-11-18 10:47:18 -08:00
ASP.NET Push Bot 42c1c93fbd ⬆️ dnvm.ps1, dnvm.cmd, dnvm.sh
Source: aspnet/dnvm@c8894c5424
2015-11-18 10:42:15 -08:00
glennc a402095e59 Update dockerfiles 2015-11-18 10:25:02 -08:00
Kiran Challa f468d6789f Fixed doc comment 2015-11-18 10:07:05 -08:00
Brennan 0708c34331 Adding windows specific tests 2015-11-18 10:03:39 -08:00
Kiran Challa 982c7abea8 [Fixes #3503] Removing formatters on a given type only works on collections in MVC options 2015-11-18 09:56:44 -08:00
Ryan Nowak a65a6a7cab React to change in Razor 2015-11-18 09:53:24 -08:00
Ryan Nowak 5ce8740f70 Simplify ChunkTreeBuilder 2015-11-18 09:43:11 -08:00
Pavel Krymets 681533e06c Set IHttpContextAccessor only if DI provides it 2015-11-18 09:15:27 -08:00
Glenn Condron 02c4a35272 Update Dockerfile 2015-11-18 09:03:15 -08:00
Glenn Condron 96806ed284 Update Dockerfile 2015-11-18 09:02:37 -08:00
Damian Edwards 8c7e493785 Fix sample 2015-11-18 08:12:20 -08:00
Master T efec0feda2 Fix merge 2015-11-18 08:29:30 +01:00
Master T 2cdd659e67 Fix indentation 2015-11-18 05:11:57 +01:00
Master T 592d802fde Add test for https scheme, code cleanup 2015-11-18 05:06:30 +01:00
Master T 85eb6ab600 Code cleanup 2015-11-18 05:06:29 +01:00
Master T ba63c894be Remove Console.WriteLine 2015-11-18 05:06:28 +01:00
Master T 8e910baf04 Improve based on pull request feedback 2015-11-18 05:06:27 +01:00
Master T bed8c67181 Add SslProtocols option to HttpsConnectionFilter 2015-11-18 05:05:50 +01:00
Master T bd30f28dfd Implement client certificate authentication 2015-11-18 05:05:50 +01:00
glennc 2c3927fbcb rename rc folder 2015-11-17 19:25:29 -08:00
Glenn Condron bcac9e4750 Merge pull request #1056 from Kagamine/patch-2
Fixed #1035, #1048, #1034
2015-11-17 18:58:01 -08:00
あまみや ゆうこ 9252061a83 Fixed #1035, #1048, #1034. Add rc1 samples, update dockerfile
Remove web listener
Simple the command line of kestrel
Add IISPlatformHandler
Up the latest to date
Created rc1 folder
Update docker files
rc1 -> rc1-final
2015-11-18 10:06:21 +08:00
Pranav K ef293c645c Fixing tests 2015-11-17 17:06:36 -08:00
Pranav K b520b0cb22 Limit [FromServices] to apply only to parameters
Fixes #3507
2015-11-17 16:41:04 -08:00
Doug Bunting 7e8a405917 Specify all required packages in `.travis.yml`
- most seem to be included in current Travis bundles but Trusty support is in Beta
2015-11-17 16:33:20 -08:00
Pranav K 5a3c4957d9 Reacting to FromServices changes 2015-11-17 16:20:56 -08:00
Doug Bunting 606c97d9f8 Correct `.travis.yml` typo 2015-11-17 15:40:36 -08:00
herecydev db94a8ed19 Removed redundant null checks and tested logging 2015-11-17 15:32:54 -08:00
Doug Bunting 6ff10c4d6c Small .travis.yml update: Consolidate `brew` commands under a single `if` 2015-11-17 14:56:16 -08:00
Doug Bunting 0b0defe446 Small .travis.yml update: Consolidate `brew` commands under a single `if` 2015-11-17 14:55:07 -08:00
Doug Bunting 03a04917d0 Small .travis.yml update: Consolidate `brew` commands under a single `if` 2015-11-17 14:53:54 -08:00
Doug Bunting 042b9d26c6 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:43:24 -08:00
Doug Bunting 82c855d172 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:42:19 -08:00
Doug Bunting 88af0e74c9 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:39:48 -08:00
Doug Bunting 1227fffcf5 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:34:48 -08:00
Doug Bunting 432850900f Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:33:41 -08:00
Doug Bunting 06b8248ff0 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:26:37 -08:00
Doug Bunting 9d3ceb66e5 Move Travis to supported Linux distribution
- use Ubuntu 14.04 (Trusty)
  - Travis support for Trusty is in Beta and currently requires `sudo`
- run `dnu restore` with DNX Core since aspnet/External#49 is not fixed in Mono versions we can use
- add required dependencies for DNX Core to `.travis.yml`
- addresses part of aspnet/Universe#290
2015-11-17 14:16:09 -08:00