由於匯編語言比C++更接近硬件底層,所以在性能要求高的程序中往往可以采取在C++代碼中嵌入匯編的方式來給程序提速。
在VC中可以簡單的通過
__asm { //在這裡添加匯編代碼 }來實現。下面通過一個非常簡單的例子來看匯編交叉編譯和直接的C++代碼之間的性能差距,代碼和運行結果如下:
#include#include time.h #define NumberOfCalculation 10000000 void main() { long gettime = clock(); unsigned int i = NumberOfCalculation; unsigned int a1 = 1, b1 = 2; unsigned int a2 = 1, b2 = 2; while (i--) { //c a1 = a1 + b1; b1 = a1 + b1; } printf(a:%d b:%d , a1, b1); printf(普通c++程序花費時間%dms , clock() - gettime); i = NumberOfCalculation; gettime = clock(); while (i--) { //匯編 __asm { mov eax, a2; mov ebx, b2; add eax, ebx mov a2, eax; add ebx, eax mov b2, ebx; } } printf(a:%d b:%d , a2, b2); printf(匯編交叉編譯程序花費時間%dms , clock() - gettime); getchar(); }