2011-10-10 15 views

回答

4

原則:沒有。整個問題就是你繞過一些被管理的運行時檢查和限制。

這就是說,它理論上是可能的JIT引擎可以在極少數情況下,應用較少的優化,由於較少的假設,可在不安全的代碼塊進行。 編輯實際上,Matthew提出的關於固定堆內存的觀點就是這個方向上的一個主要例子。在JIT之三和GC發動機都受到較大限制,可以使更少的假設

此外,不安全的代碼需要有一定的權限運行,所以它可能不適合所有deplyoment目標。

3

有通常爲編組的參數和結果的罰分。

+1

這不是真的指的是互操作代碼(P/Invoke或COM) ? IIRC不安全的代碼可以寫在普通的IL或C# – sehe

+0

+1你應該說明你正在談論(PInvoke的)到底是什麼,特別是因爲其他所有的反應都是對'unsafe'關鍵字:-) – xanatos

+0

我確實是假設P/Invoke,@bobb應該澄清。 –

5

採取以獲得固定的內存位置和轉換指標的指針可能取決於您正在嘗試做的負面影響的時間。只有真正的知道方法是safeunsafe,看看哪個更快。 (我的經驗已經安全工作通常更快......我很驚訝)

+1

+1建檔 – sehe

+0

呀的工作,我不是通常是第一個暗示。 :O) –

相關問題