https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-6-0-preview-4-performance-edition/
https://docs.microsoft.com/en-us/aspnet/core/blazor/java-interoperability/call-java-from-dotnet?view=aspnetcore-6.0#byte-array-support
https://docs.microsoft.com/en-us/aspnet/core/blazor/java-interoperability/call-dotnet-from-java?view=aspnetcore-6.0#byte-array-support
https://docs.microsoft.com/en-us/aspnet/core/blazor/java-interoperability/call-java-from-dotnet?view=aspnetcore-6.0#stream-from-net-to-java
https://docs.microsoft.com/en-us/aspnet/core/blazor/java-interoperability/call-dotnet-from-java?view=aspnetcore-6.0#stream-from-java-to-net
使用上面提到的 Blazor Streaming Interop , 我们现在支持通过 InputFile 组件上传大文件(以前的上传限制在2GB左右) 。 由于使用了本地 byte[] 流 , 而不是使用 Base64编码 , 该组件的速度也有了显著提高 。 例如 , 与.NET 5相比 , 一个100mb文件的上传速度要快77% 。
文章图片
- 上传大文件 https://docs.microsoft.com/en-us/aspnet/core/blazor/file-uploads?view=aspnetcore-6.0&pivots=server
- 文档 https://docs.microsoft.com/en-us/aspnet/core/blazor/file-downloads?view=aspnetcore-6.0
- dotnet/aspnetcore#33900 https://github.com/dotnet/aspnetcore/pull/33900
来自@benaadams 的dotnet/aspnetcore#30320对我们的 Type 库进行了现代化改造并对其进行了优化 , 因此网站加载速度更快 。 signalr.min.js 文件从 36.8 kB 压缩和132 kB 未压缩变为16.1 kB 压缩和42.2 kB 未压缩 。 blazor.server.js文件压缩后为 86.7 kB , 未压缩时为 276 kB , 压缩后为 43.9 kB , 未压缩时为 130 kB 。
@benaadams 的dotnet/aspnetcore#31322在从连接功能集合中获取常用功能时删除了一些不必要的强制转换 。 这在访问集合中的常见特征时提供了约 50% 的改进 。 不幸的是 , 在基准测试中看到性能改进是不可能的 , 因为它需要一堆内部类型 , 所以我将在此处包含来自 PR 的数字 , 如果您有兴趣运行它们 , PR 包括可以运行的基准反对内部代码 。
文章图片
dotnet/aspnetcore#31519也来自@benaadams , 将默认接口方法添加到 IHeaderDictionary 类型 , 以通过以标头名称命名的属性访问公共标头 。 访问标题字典时不再输入错误的常见标题!这篇博客文章中更有趣的是 , 这个改变允许服务器实现返回一个自定义标头字典 , 以更优化地实现这些新的接口方法 。 例如 , 服务器可能会将标头值直接存储在一个字段中 , 并直接返回该字段 , 而不是在内部字典中查询标头值 , 这需要对键进行哈希并查找条目 。 在某些情况下 , 当获取或设置标头值时 , 此更改可带来高达480%的改进 。 再一次 , 为了正确地对这个变化进行基准测试 , 以显示它需要使用内部类型进行设置 , 所以我将包括来自PR的数字 , 对于那些有兴趣尝试它的人来说 , PR包含在内部代码上运行的基准测试 。
【ASP.NET Core 6 的性能改进】
文章图片
dotnet/aspnetcore#31466使用 .NET 6 中引入的新CancellationTokenSource.TryReset 方法在连接关闭但未取消的情况下重用 CancellationTokenSource 。 下面的数字是通过运行bombardier对Kestrel的125个连接收集的 , 它运行了大约10万个请求 。
dotnet/aspnetcore#31528和dotnet/aspnetcore#34075分别对重用HTTPS握手和HTTP3流的CancellationTokenSource做了类似的更改 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
