Skip to content
This repository was archived by the owner on Dec 18, 2018. It is now read-only.

Less StringValue struct copies for header checks#2488

Merged
halter73 merged 4 commits into
aspnet:devfrom
benaadams:sv
Apr 14, 2018
Merged

Less StringValue struct copies for header checks#2488
halter73 merged 4 commits into
aspnet:devfrom
benaadams:sv

Conversation

@benaadams
Copy link
Copy Markdown
Contributor

/cc @halter73 @davidfowl something more like this?

@benaadams
Copy link
Copy Markdown
Contributor Author

Ubuntu 16.04 Release Build

 Failed   DoesNotRejectRequestWithContentLengthHeaderExceedingGlobalLimitIfLimitDisabledPerRequest
 Error Message:
  System.TimeoutException : The operation at /_/test/shared/TestConnection.cs:129 timed out after reaching the limit of 60000ms.
 Stack Trace:
    at Microsoft.AspNetCore.Testing.TaskExtensions.<TimeoutAfter>d__0`1.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Microsoft.AspNetCore.Testing.TestConnection.<Receive>d__21.MoveNext() in /_/test/shared/TestConnection.cs:line 131
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.MaxRequestBodySizeTests.<DoesNotRejectRequestWithContentLengthHeaderExceedingGlobalLimitIfLimitDisabledPerRequest>d__2.MoveNext() in /_/test/Kestrel.FunctionalTests/MaxRequestBodySizeTests.cs:line 131
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

@benaadams
Copy link
Copy Markdown
Contributor Author

test Ubuntu 16.04 Release Build

@benaadams
Copy link
Copy Markdown
Contributor Author

benaadams commented Apr 12, 2018

Odd error on Ubuntu 16.04 Release Build https://github.com/dotnet/corefx/issues/29075
https://ci3.dot.net/job/aspnet_KestrelHttpServer/job/dev/job/linux-Configuration_Release_prtest/85/console

RejectsConnectionsWhenLimitReached [FAIL]
Failed   RejectsConnectionsWhenLimitReached
Error Message:
 System.IO.IOException : Unable to read data from the transport connection: Invalid argument.
---- System.Net.Sockets.SocketException : Invalid argument
Stack Trace:
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
   at System.IO.StreamReader.ReadBufferAsync()
   at System.IO.StreamReader.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Testing.TaskExtensions.TimeoutAfter[T](Task`1 task, TimeSpan timeout, String filePath, Int32 lineNumber)
   at Microsoft.AspNetCore.Testing.TestConnection.Receive(String[] lines) in /_/test/shared/TestConnection.cs:line 131
   at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.ConnectionLimitTests.RejectsConnectionsWhenLimitReached() in /_/test/Kestrel.FunctionalTests/ConnectionLimitTests.cs:line 113
--- End of stack trace from previous location where exception was thrown ---

@benaadams
Copy link
Copy Markdown
Contributor Author

test Ubuntu 16.04 Release Build

@benaadams
Copy link
Copy Markdown
Contributor Author

OSX 10.12 Release Build

Still waiting to schedule task
All nodes of label ‘osx-10.12||OSX.1012.Amd64.Open’ are offline

Copy link
Copy Markdown
Member

@halter73 halter73 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

if (hostText[offset] != ':' || hostText.Length == offset + 1)
var firstChar = hostText[offset];
offset++;
if (firstChar != ':' || (uint)offset >= (uint)hostText.Length)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other uint casts look to be eliminating a comparison which I'm OK with. This looks like it's just for the JIT though.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorta, its verifying offset is positive so the var i = offset in the for loop so the bounds checks can be eliminated in the for loop below.

However, the Jit still doesn't eliminate the bounds check at this time; so I can remove it? (doesn't really like doing it for things that start with variables)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

@halter73 halter73 requested a review from Tratcher April 12, 2018 22:00
@halter73
Copy link
Copy Markdown
Member

@Tratcher Can you review this?

@Tratcher
Copy link
Copy Markdown
Member

Maybe tomorrow, I'm in meetings the rest of the day.

@benaadams
Copy link
Copy Markdown
Contributor Author

OSX 10.12 Release Build Libuv tests failed with no explaination

  Starting test group: Libuv.FunctionalTests/netcoreapp2.0
Microsoft (R) Test Execution Command Line Tool Version 15.7.0-preview-20180221-13
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
[xUnit.net 00:00:02.4087211]     RegisterIPEndPoint_Port443_Success [SKIP]
Skipped  RegisterIPEndPoint_Port443_Success
[xUnit.net 00:00:03.1955494]     ConnectionClosedEvenIfAppSwallowsException [SKIP]
Skipped  ConnectionClosedEvenIfAppSwallowsException
The active test run was aborted. Reason: 

Total tests: Unknown. Passed: 14. Failed: 0. Skipped: 2.
Test Run Aborted.
Test execution time: 7.1488 Seconds

test Ubuntu 16.04 Release Build

@halter73
Copy link
Copy Markdown
Member

The aborted test is probably related to #2454

@benaadams
Copy link
Copy Markdown
Contributor Author

Ubuntu 16.04 Release Build is grumpy

Failed   SynchronousWritesAllowedByDefault
Error Message:
 Assert.Equal() Failure
                   ↓ (pos 9)
Expected: HTTP/1.1 200 OK\r\nDate: Thu, 12 Apr 2018 23:25:07 G···
Actual:   HTTP/1.1 400 Bad Request\r\nConnection: close\r\nDate:···
                   ↑ (pos 9)
Stack Trace:
   at Microsoft.AspNetCore.Testing.TestConnection.<Receive>d__21.MoveNext() in /_/test/shared/TestConnection.cs:line 147
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.ResponseTests.<SynchronousWritesAllowedByDefault>d__66.MoveNext() in /_/test/Kestrel.FunctionalTests/ResponseTests.cs:line 2534
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

test Ubuntu 16.04 Release Build

@benaadams
Copy link
Copy Markdown
Contributor Author

benaadams commented Apr 13, 2018

Ubuntu 16.04 Release Build #2486

Log Critical[0]: Unexpected exception in HttpConnection.ProcessRequestsAsync. System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'MemoryPoolBlock'.
   at System.Buffers.ThrowHelper.ThrowObjectDisposedException(ExceptionArgument argument) in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/PipelinesThrowHelper.cs:line 51
   at System.Buffers.MemoryPoolBlock.Dispose() in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/MemoryPoolBlock.Release.cs:line 54
   at System.IO.Pipelines.BufferSegment.ResetMemory()
   at System.IO.Pipelines.Pipe.CompletePipe()
   at System.IO.Pipelines.Pipe.CompleteWriter(Exception exception)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.ReadInputAsync(Stream stream)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.RunAsync(Stream stream) in /_/src/Kestrel.Core/Adapter/Internal/AdaptedPipeline.cs:line 45
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication) in /_/src/Kestrel.Core/Internal/HttpConnection.cs:line 183
Log Critical[0]: ConnectionDispatcher.Execute() 0HLD0PTH19007 System.Exception: Unexpected critical error. Log Critical[0]: Unexpected exception in HttpConnection.ProcessRequestsAsync. System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'MemoryPoolBlock'.
   at System.Buffers.ThrowHelper.ThrowObjectDisposedException(ExceptionArgument argument) in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/PipelinesThrowHelper.cs:line 51
   at System.Buffers.MemoryPoolBlock.Dispose() in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/MemoryPoolBlock.Release.cs:line 54
   at System.IO.Pipelines.BufferSegment.ResetMemory()
   at System.IO.Pipelines.Pipe.CompletePipe()
   at System.IO.Pipelines.Pipe.CompleteWriter(Exception exception)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.ReadInputAsync(Stream stream)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.RunAsync(Stream stream) in /_/src/Kestrel.Core/Adapter/Internal/AdaptedPipeline.cs:line 45
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication) in /_/src/Kestrel.Core/Internal/HttpConnection.cs:line 183 ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'MemoryPoolBlock'.
   at System.Buffers.ThrowHelper.ThrowObjectDisposedException(ExceptionArgument argument) in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/PipelinesThrowHelper.cs:line 51
   at System.Buffers.MemoryPoolBlock.Dispose() in /_/.nuget/packages/microsoft.extensions.buffers.sources/2.1.0-preview3-32110/contentFiles/cs/netstandard1.0/Microsoft.Extensions.Buffers.Sources/MemoryPoolBlock.Release.cs:line 54
   at System.IO.Pipelines.BufferSegment.ResetMemory()
   at System.IO.Pipelines.Pipe.CompletePipe()
   at System.IO.Pipelines.Pipe.CompleteWriter(Exception exception)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.ReadInputAsync(Stream stream)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.RunAsync(Stream stream) in /_/src/Kestrel.Core/Adapter/Internal/AdaptedPipeline.cs:line 45
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication) in /_/src/Kestrel.Core/Internal/HttpConnection.cs:line 183
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Testing.TestApplicationErrorLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter) in /_/test/shared/TestApplicationErrorLogger.cs:line 61
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.KestrelTrace.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter) in /_/src/Kestrel.Core/Internal/Infrastructure/KestrelTrace.cs:line 198
   at Microsoft.Extensions.Logging.LoggerExtensions.LogCritical(ILogger logger, EventId eventId, Exception exception, String message, Object[] args)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication) in /_/src/Kestrel.Core/Internal/HttpConnection.cs:line 187
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ConnectionDispatcher.Execute(ConnectionContext connectionContext) in /_/src/Kestrel.Core/Internal/ConnectionDispatcher.cs:line 60

@benaadams
Copy link
Copy Markdown
Contributor Author

OSX 10.12 Release Build

CanRebindToMultipleEndPoints [FAIL]
Failed   CanRebindToMultipleEndPoints
Error Message:
 System.Net.Sockets.SocketException : Operation timed out
Stack Trace:
   at Microsoft.AspNetCore.Testing.HttpClientSlim.<GetSocket>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Testing.HttpClientSlim.<GetStream>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Testing.HttpClientSlim.<GetStringAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Testing.HttpClientSlim.<GetStringAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.AddressRegistrationTests.<CanRebindToMultipleEndPoints>d__50.MoveNext() in /_/test/Kestrel.FunctionalTests/AddressRegistrationTests.cs:line 719
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Standard Output Messages:
 | [2018-04-12T20:25:22] Microsoft.AspNetCore.Hosting.Internal.WebHost Information: Request starting HTTP/1.0 GET http://127.0.0.1:51578/  
 | [2018-04-12T20:25:22] Microsoft.AspNetCore.Hosting.Internal.WebHost Information: Request finished in 0.208ms 200 

test OSX 10.12 Release Build
test Ubuntu 16.04 Release Build

@benaadams
Copy link
Copy Markdown
Contributor Author

OSX 10.12 Release Build

Failed   LoggingConnectionAdapterCanBeAddedBeforeAndAfterHttpsAdapter
Error Message:
 System.IO.IOException : Authentication failed because the remote party has closed the transport stream.
Stack Trace:
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Net.Security.SslState.ThrowIfExceptional()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult)
   at System.Net.Security.SslStream.<>c.<AuthenticateAsClientAsync>b__46_2(IAsyncResult iar)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Testing.HttpClientSlim.GetStream(Uri requestUri, Boolean validateCertificate)
   at Microsoft.AspNetCore.Testing.HttpClientSlim.GetStringAsync(Uri requestUri, Boolean validateCertificate)
   at Microsoft.AspNetCore.Testing.HttpClientSlim.GetStringAsync(String requestUri, Boolean validateCertificate)
   at Microsoft.AspNetCore.Testing.TaskExtensions.TimeoutAfter[T](Task`1 task, TimeSpan timeout, String filePath, Int32 lineNumber)
   at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.LoggingConnectionAdapterTests.LoggingConnectionAdapterCanBeAddedBeforeAndAfterHttpsAdapter() in /_/test/Kestrel.FunctionalTests/LoggingConnectionAdapterTests.cs:line 58
--- End of stack trace from previous location where exception was thrown ---
Standard Output Messages:
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Hosting.Internal.WebHost Debug: Hosting starting
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Hosting.Internal.WebHost Debug: Hosting started
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Hosting.Internal.WebHost Debug: Loaded hosting startup assembly Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.FunctionalTests
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Server.Kestrel Debug: Connection id "0HLD17OJF00T7" started.
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv Debug: Connection id "0HLD17OJF00T7" received FIN.
 | [2018-04-13T05:58:52] LoggingConnectionAdapter Debug: ReadAsync[0] 
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv Debug: Connection id "0HLD17OJF00T7" sending FIN.
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Hosting.Internal.WebHost Debug: Hosting shutdown
 | [2018-04-13T05:58:52] HttpsConnectionAdapter Debug: Failed to authenticate HTTPS connection.
 |    at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
 |    at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
 |    at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
 |    at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
 |    at System.Net.Security.SslStream.BeginAuthenticateAsServer(SslServerAuthenticationOptions sslServerAuthenticationOptions, CancellationToken cancellationToken, AsyncCallback asyncCallback, Object asyncState)
 |    at System.Net.Security.SslStream.<>c.<AuthenticateAsServerAsync>b__51_0(SslServerAuthenticationOptions arg1, CancellationToken arg2, AsyncCallback callback, Object state)
 |    at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions)
 |    at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions)
 |    at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state)
 |    at System.Net.Security.SslStream.AuthenticateAsServerAsync(SslServerAuthenticationOptions sslServerAuthenticationOptions, CancellationToken cancellationToken)
 |    at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.InnerOnConnectionAsync(ConnectionAdapterContext context) in /_/src/Kestrel.Core/Internal/HttpsConnectionAdapter.cs:line 167
 | [2018-04-13T05:58:52] LoggingConnectionAdapter Debug: ReadAsync[0] 
 | [2018-04-13T05:58:52] Microsoft.AspNetCore.Server.Kestrel Debug: Connection id "0HLD17OJF00T7" stopped.

test OSX 10.12 Release Build

Copy link
Copy Markdown
Member

@Tratcher Tratcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there current perf metrics? What's the gain?

@halter73
Copy link
Copy Markdown
Member

@Tratcher Thee are some benchmarks results with just this change in dotnet/coreclr#17512 (comment) under "Skip struct copies (improve implementations)".

@halter73 halter73 merged commit e30a02c into aspnet:dev Apr 14, 2018
@halter73
Copy link
Copy Markdown
Member

Thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants