看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《HeyScng ( )》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VS2010 : CODE: : http://nopaste.csie.org/ea1a4 : PROPERTY使用 : 純 MSIL Common Language Runtime 支援 (/clr:pure) : RELEASE MODE執行時間650MS : Common Language Runtime 支援 (/clr) : RELEASE MODE執行時間2000MS : 想請問如何使相同程式碼在Common Language Runtime 支援 (/clr)下 : 也能有相同的執行速度 : MSDN 也找不到有關為何速度會變慢的解釋 : 不知這方面是否有關鍵字可以GOOGLE : 謝謝 不是很簡單嘛? pure就只有managed可用 clr的話是混合式, 可能要處理managed與unmanaged等資料型態 混合式的好處是提供相容性, 可以沿用舊的unmanaged程式碼, 但缺點就是需要多檢查 而pure因為都只有MSIL, 所以一切行為都更可以掌握及預測, 也因此在執行期(預轉譯成機械碼時)可以提供更好的優化 你純粹只用.Net寫, 沒有老舊程式碼的負擔, 也不需要提供給非.net的程式用 此時你不用考慮, 僅用pure就對了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.73.3
HeyScng:首先謝謝您的答覆 由於程式我會呼叫其他dll 因此(/clr) 02/09 10:48
HeyScng:勢必得使用 演算法的執行時間亦須符合規格 主要是想用 02/09 10:49
HeyScng:template 來減少重複程式碼 以利以後管理 沒想到速度卻 02/09 10:50
HeyScng:慢了好幾倍 因此才想上來問此情況是否有解決方法 02/09 10:51
deuter:既然只要.net, 為什麼不直接用C#寫就好了呢? 02/09 12:35
deuter:覺得c++/cli只有在需要 native和managed間interop時有用 02/09 12:40
kazuto:C#也可以直接呼叫C的DLL,這樣反而可以兼顧兩邊優點。 02/09 14:18
Ebergies:template 不利閱讀, 反而容易產生管理困難吧 02/09 15:50