详细介绍.NET中的性能改进


本文摘自PHP中文网,作者黄舟,侵删。

.NET 4.6中带来了一些与性能改进相关的CLR特性,这些特性中有一部分将会自动生效,而另外一些特性,例如SIMD与异步本地存储(Async Local Storage)则需要对编写应用的方式进行某些改动。

  SIMD

  Mono团队一直以他们对SIMD,即单指令流多数据流特性的支持引以为傲。SIMD是一种CPU指令集,它能够在同一时间对最多8个值进行同一操作。而随着.NET CLR版本4.6的推出,Windows开发者终于也能够使用这一特性了。

  为了实际观察一下SIMD的效果,可以参考一下这个示例。假设你需要通过c[i] = a[i] + b[i]这种形式对两个数组进行相加,以得到第三个数组。通过使用SIMD,你可以按照以下方式编写代码:

1

2

3

4

5

for (int i = 0; i < size; i += Vector.Count)

 {

     Vectorv = new Vector(A,i) + new Vector(B,i);

     v.CopyTo(C,i);

 }

  请注意这个循环是如何按Vector<int>.Count的取值进行递增的,根据CPU类型的不同,它的取值可能是4或是8。.NET JIT编译器将根据CPU的不同生成相应的代码,以4或8的值对数组进行批量相加。

阅读剩余部分

相关阅读 >>

详细介绍一个.net开源权限管理系统

.net core中遇到的一些坑的图文详解

.net中怎么实现程序分页

浅谈.net core开发日志中edge.js是什么?如何用?

c#中关于rabbitmq应用的图文代码详解

c#实现与现有.net事件桥接的简单代码

c# md5hash的用法及实例

.net core2.0小技巧之memorycache问题修复解决的方法(图)

.net core类库中使用ef core迁移数据库到sql server的方法_实用技巧

c#与.net框架之间的关系是什么?c#程序的开发工具

更多相关阅读请进入《.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...