详细介绍.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 core 上运行的wordpress

c#如何通过对象属性名修改值的实例

正则表达式抓取网页信息

编写高性能 .net的实例教程

c# 一些面试试题的实例教程

c#给图片增加文字实例代码

c# 中guid生成格式有哪些方法

c#集合类有哪些?

.net用repeater实现分页效果的代码详解

c#实现杨辉三角的示例

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




打赏

取消

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

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

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

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

评论

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