详细介绍.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的值对数组进行批量相加。

阅读剩余部分

相关阅读 >>

c#中实现复制与删除文件的方法

c#如何连接加密数据库(sqlite)的示例分享

c#中匿名委托以及lambda表达式的实例详解

c#中的抽象类与接口的详解

.net项目中使用postsharp

c#中关于list<t>的并集与交集以及差集解析

c# invoke 和 begininvoke之间的区别详解

c#如何生成二维码的示例分享

c#中发送邮件的实现方法详解

httpclient向https发送数据建立ssl连接时的异常

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




打赏

取消

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

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

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

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

评论

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