首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C#/C++/CLI 效能測試:Native C++ 呼叫 Native C++ DLL vs 純 C# 實作

     編輯:關於C++

測試架構

  1. Native C++ EXE 呼叫 Native C++ DLL:VS2010 Win32 主控台專案,連結 EfficiencyNativeCPPDLL.lib,呼叫 ComputePot 迴圈 201 次。
  2. 純 C# 實作:相同演算法移植至 C#,同樣迴圈 201 次。

關鍵程式碼片段

// C++ DLL 呼叫端
EfficiencyNativeCppDll* effPro = new EfficiencyNativeCppDll();
effPro->InitPositions(); effPro->UpdatePositions();
clock_t start = clock();
for (int i=0; i<NITER; ++i) {
    effPro->Pot = 0.0;
    if (i%10==0) printf("%5d: Potential: %10.3f\n", i, effPro->ComputePot());
    effPro->UpdatePositions();
}
clock_t stop = clock();
printf("Seconds = %10.9f\n", (double)(stop-start)/CLOCKS_PER_SEC);

測試結果

  • Native C++ 呼叫 DLL:約 0.7 秒(Release 模式)。
  • C# 純實作:約 14 秒(Release 模式),效能差距約 20 倍。
  • C++/CLI 封裝呼叫 Native DLL:效能接近 Native C++,僅有微小封裝開銷。

結論

  1. Native C++ 直接呼叫 Native DLL 效能最佳。
  2. C++/CLI 作為橋接層效能損失極小,適合混合開發。
  3. 純 C# 密集數值運算效能明顯落後,建議核心演算法用 Native C++ 實作並透過 P/Invoke 或 C++/CLI 呼叫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved