Re: [問題] 相同程式 (/clr:pure) (/clr)速度差異

看板C_and_CPP作者 ( )時間13年前 (2011/02/09 10:58), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串3/9 (看更多)
推 HeyScng:首先謝謝您的答覆 由於程式我會呼叫其他dll 因此(/clr) 02/09 10:48 → HeyScng:勢必得使用 演算法的執行時間亦須符合規格 主要是想用 02/09 10:49 → HeyScng:template 來減少重複程式碼 以利以後管理 沒想到速度卻 02/09 10:50 → HeyScng:慢了好幾倍 因此才想上來問此情況是否有解決方法 02/09 10:51 可能表達的不情楚 基本上是同樣的程式碼 使用 template 和不使用 template 速度差很多 尤其是在PROPERTY使用 (/clr:pure) 下 不知是否 template 誤用或是其他原因 或是可以 compiler 設定參數方式解決此問題 (但亦須能與原生碼混用) 再次謝謝您的答覆 ※ 引述《WPC001 (突然覺得自己是孤獨的...)》之銘言: : ※ 引述《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: 140.96.63.154

02/09 11:46, , 1F
template應該是編譯期行為吧?
02/09 11:46, 1F

02/09 13:55, , 2F
推1F
02/09 13:55, 2F

02/09 16:08, , 3F
如果你用的是 C# Generics 的話, 那麼它是在執行期才產生
02/09 16:08, 3F

02/09 16:09, , 4F
但只會產生一次, 如果你使用次數夠多應該是不成問題才對
02/09 16:09, 4F
文章代碼(AID): #1DKWBpVi (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 9 篇):
文章代碼(AID): #1DKWBpVi (C_and_CPP)