2009-10-17 51 views
0

我在我的項目中重寫了一個數字處理C#代碼的兩頁代碼,這些代碼在我的項目中使用了非託管C++,而完全優化後的代碼給出了3倍的加速。我想繼續優化該代碼,但現在我的選擇分析器dotTrace無法執行此操作,因爲它只查看託管代碼。在C#應用程序中用於C++模塊的分析器

如何在C/C++應用程序中運行時調用P/Invoked C++模塊?


和切向的問題: 調用經由P /調用以下功能不產生任何不必要的開銷(如複製陣列),是嗎?只要確定。 (請注意,富都來自bar讀取和寫入的話)

// From the C# side: 
[DllImport("foo.dll")] 
static extern void Foo(float[,] bar); 

// From the C++ side: 
extern "C" __declspec(dllexport) 
void Foo(float* bar); 

編譯器:MSVC在Vista

+0

'float [,]/float *'真的對嗎? 'float []/float *'或者'float [,]/float **'不會更好關聯嗎? – ephemient 2009-10-17 05:10:22

+0

沒有。學習float [,]和float [] []之間的區別。 – 2009-10-17 20:07:39

+0

我不知道,我不使用C#。我會將其添加到我不知道的語言列表:) – ephemient 2009-10-18 04:03:33

回答

2

如何爲C++代碼製作獨立的測試工具並使用任意數量的工具(如VTune,callgrind,Quantify,oprofile ...)單獨進行分析?

0

AQtime可以分析本機和託管代碼。這是非常強大的工具。

0

Visual Studio Profiler適用於混合模式應用程序。 (很不幸)很難在VS 2008中訪問,但它包含在VS 2010 Ultimate測試版中,您可以免費下載here

相關問題