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

阅读剩余部分

相关阅读 >>

ants performance profiler(.net性能调优教程)

c#中关于timer定时器重入问题的解决方法

分享n种.net获取当前路径的的实例

c#连接ftp时路径出现问题的解决方法

c#对word文档的创建、插入表格、设置样式等操作实例

浅谈.net中的浅拷贝和深拷贝

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

总结一些编码和设计原则实例

有关c#工厂模式简单讲解

c#如何在图片增加文字的示例代码分享

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




打赏

取消

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

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

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

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

评论

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