自動矢量器使用
在 MSDN 文檔中,現在編譯器自動性能方面的原因是有能力的"概述"循環和支持 SIMD 指令,這是大多數情況下調用自動性能的話,對于所有 X 86 處理器 / X 64 現代的處理器中運行的速度要快 8 倍**。**
與 Visual Studio 11 的預覽版本中,SIMD 指令和概述記錄是自動優化使用。
與 Visual Studio 2010 年 c/c + + 中下面的循環
~~~
for (int i=0;i <MAX_;i++)
{
a[i]=i*7.0;
}
~~~
給出下面的匯編程序代碼用于指令和寄存器操縱的浮點數。(**fld、 fmul、 fstp、 fstp、 ST (1) (0)、 ST** ))
~~~
for (int i=0;i <MAX_;i++)
fld QWORD PTR __real@401c000000000000
add esp, 4
mov esi, eax
xor eax, eax
mov DWORD PTR _i$83361[ebp], eax
$LN3@wmain:
{
a[i]=i*7.0;
fild DWORD PTR _i$83361[ebp]
inc eax
mov DWORD PTR _i$83361[ebp], eax
fmul ST(0), ST(1)
fstp QWORD PTR [esi+eax*8-8]
cmp eax, 100000000 ; 05f5e100H
jl SHORT $LN3@wmain
}
~~~
?
Visual Studio 11 在相同的環路循環中,**在默認情況下,**下面的代碼是在匯編程序的特定的跟蹤記錄代碼實現。(**movsd、 超低、 cvtdq2pd、 xmm0、 xmm1** ))
~~~
for (int i=0;i <MAX_;i++)
movsd xmm1, QWORD PTR __real@401c000000000000
add esp, 4
mov esi, eax
xor ecx, ecx
npad 5
$LL9@wmain:
{
a[i]=i*7.0;
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
inc ecx
mulsd xmm0, xmm1
movsd QWORD PTR [esi+ecx*8-8], xmm0
cmp ecx, 100000000 ; 05f5e100H
jl SHORT $LL9@wmain
}
~~~
是可能要禁用此功能嗎?
是不足以轉到該屬性的 c + + 項目, 。代碼生成。啟用增強指令集**和選擇**號增強說明 (/ 拱: IA32) (默認情況下,它是**沒有設置**,這意味著是否啟用了自動矢量化角),如下圖所示
[](http://www.microsofttranslator.com/bv.aspx?from=fr&to=zh-CHS&a=http%3A%2F%2Fblogs.msdn.com%2Fcfs-file.ashx%2F__key%2Fcommunityserver-blogs-components-weblogfiles%2F00-00-01-46-55-metablogapi%2F8422.image_5F00_16BD87FD.png)
在測試機器,未設置,對應: SSE2.
它是影響性能嗎?
是對 1 萬的迭代循環,看下優化以后的效果
沒有說明
[](http://www.microsofttranslator.com/bv.aspx?from=fr&to=zh-CHS&a=http%3A%2F%2Fblogs.msdn.com%2Fcfs-file.ashx%2F__key%2Fcommunityserver-blogs-components-weblogfiles%2F00-00-01-46-55-metablogapi%2F1072.image_5F00_455390DF.png)
說明
[](http://www.microsofttranslator.com/bv.aspx?from=fr&to=zh-CHS&a=http%3A%2F%2Fblogs.msdn.com%2Fcfs-file.ashx%2F__key%2Fcommunityserver-blogs-components-weblogfiles%2F00-00-01-46-55-metablogapi%2F6431.image_5F00_491135AF.png)
自動并行
在文檔中表示,現在已經可以利用多處理器使用 VS 11的**并行處理功能,就能夠啟動多核優化的功能。新的指令/Qpar ,可啟用此功能。
[](http://www.microsofttranslator.com/bv.aspx?from=fr&to=zh-CHS&a=http%3A%2F%2Fblogs.msdn.com%2Fcfs-file.ashx%2F__key%2Fcommunityserver-blogs-components-weblogfiles%2F00-00-01-46-55-metablogapi%2F6428.image_5F00_50D92851.png)
加速 c + + 的大規模并行處理 (AGP) 支持
VS 11 將使它也能夠利用 GPGPU 中的圖形卡的可能性。換句話說,它將可以混合使用傳統代碼 CPU 和 GPU 代碼。
?
趕緊下載VS11體驗吧
[http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098144](http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098144)
?
- 前言
- Visual Studio 11開發指南(1) Visual Studio 11簡介與新特性
- Visual Studio 11開發指南(2) Visual Studio 11放棄宏處理
- Visual Studio 11開發指南(3)Visual Studio 11開發SharePoint 2011程序
- Visual Studio 11開發指南(4)Visual Studio 11編程語言發展
- Visual Studio 11開發指南(5)Visual Studio 11 IDE增強
- Visual Studio 11開發指南(6)Visual Studio 11平臺改進
- Visual Studio 11開發指南(7)NET 4.5的改善
- Visual Studio 11開發指南(8)Visual C++ 11新特色
- Visual Studio 11開發指南(9)Visual C++ 新功能體驗
- Visual Studio 11開發指南(10)Visual C++11 IDE 新功能體驗
- Visual Studio 11開發指南(11)Visual Studio 11調試游戲
- Visual Studio 11開發指南(12)Visual Studio 11可視化多核多線程編程的行為
- Visual Studio 11開發指南(13)C++11語言新特性
- Visual Studio 11開發指南(14)C++11---C++/ CX設計
- Visual Studio 11開發指南(15)C++11單元測試
- Visual Studio 11開發指南(16)C++11更新-多線程和異步操作管理
- Visual Studio 11開發指南(17)C++11更新- Lambda表達式
- Visual Studio 11開發指南(18)C++11更新-自動矢量器使用
- Visual Studio 11開發指南(19)C++11更新-并行模式庫和代理庫
- 在 C++ 中使用 PPL 進行異步編程
- 基于VisualStudio11開發Windows8的Metro sample講解(1)MessageBox
- Visual C++ 11 中新的并發功能
- 基于Windows8與Visual Studio2012開發內核隱藏注冊表
- 基于VC++2012在Windows8上實現文件隱藏
- 實現諾基亞 lumia Windows phone 的手機通話記錄截取
- 最短代碼實現windows8下的下載器-下載安裝執行一體化
- 用Visual studio2012在Windows8上開發內核驅動監視線程創建
- 用Visual studio2012在Windows8上開發內核驅動監視進程創建
- 基于Windows8與Visual Studio2012實現殺毒通用模塊
- 用Visual studio2012在Windows8上開發內核中隱藏進程
- 用Visual studio11在Windows8上開發內核枚舉注冊表
- 用Visual studio11在Windows8上開發內核驅動隱藏注冊表
- 用Visual studio11在Windows8上開發驅動實現注冊表監控和過濾
- 用Visual studio11在Windows8上開發驅動實現內存填0殺進程
- 【CSDN2012年度博客之星】喜歡本博客的讀者,投票贈送《visual C++2010開發權威指南》電子稿--感謝支持 ~(截至到2012年12月30日)
- 今天在清華圖書館看到我的杰作,感慨萬千,而我要歸零一切 !
- use Visual studio2012 developing kernel driver monitor thread creation on Windows8
- To kernel driver monitoring process developed in Windows8 create using Visual studio2012
- Under Windows8 kernel mode development NDIS application-NDIS Filter explain
- use Visual studio2012 development kernel to hidden process on Windows8