如果我想在一個非常敏感的應用程序中使用一些不安全的代碼 - 會不會對「不安全的代碼或線程上下文切換」有任何延遲? C#的.NET 4是否有任何性能命中或線程上下文切換使用不安全的代碼?
3
A
回答
4
原則:沒有。整個問題就是你繞過一些被管理的運行時檢查和限制。
這就是說,它是理論上是可能的JIT引擎可以在極少數情況下,應用較少的優化,由於較少的假設,可在不安全的代碼塊進行。 編輯實際上,Matthew提出的關於固定堆內存的觀點就是這個方向上的一個主要例子。在JIT之三和GC發動機都受到較大限制,可以使更少的假設
此外,不安全的代碼需要有一定的權限運行,所以它可能不適合所有deplyoment目標。
3
5
採取以獲得固定的內存位置和轉換指標的指針可能取決於您正在嘗試做的負面影響的時間。只有真正的知道方法是safe
和unsafe
,看看哪個更快。 (我的經驗已經安全工作通常更快......我很驚訝)
+1
+1建檔 – sehe
+0
呀的工作,我不是通常是第一個暗示。 :O) –
相關問題
- 1. 以下代碼是否線程安全
- 2. 此代碼是否線程安全?我怎樣才能使它線程安全?
- 3. 這段代碼是否線程安全?
- 4. 該代碼是否線程安全?
- 5. 使用SIGALRM切換線程上下文
- 6. 線程上下文切換vs進程上下文切換
- 7. C++中是否有任何線程安全的圖形庫?
- 8. 以下不安全的數組索引是否有任何性能差異?
- 9. FreeRTOS任務不是上下文切換
- 10. 以下代碼是否可重入且線程安全?
- 11. 下面的代碼不是線程安全的嗎?
- 12. 從進程上下文切換切換線程上下文有多好?
- 13. 驗證以下代碼不是線程安全的
- 14. 在多核MacOSX上,是以下C++代碼線程安全嗎?
- 15. 下面的C代碼是否安全?
- 16. 下面的代碼是如何自動線程安全的?
- 17. 此代碼是否爲此命名管道設置了任何安全性?
- 18. 該存儲過程是否線程安全? (或任何equiv在SQL Server上)
- 19. 這是線程安全的代碼?
- 20. 使用「不安全」線程函數是否安全?
- 21. 是否有可能在用戶代碼中使用Java不安全?
- 22. 線程池是否會產生上下文切換開銷?
- 23. std :: this_thread :: sleep_for - 是否將上下文切換到此線程?
- 24. 將上下文傳遞給多個線程是否安全?
- 25. 這段代碼是否是線程安全的C++
- 26. 這段代碼是否是線程安全的?
- 27. 真正不安全的代碼性能
- 28. EF上下文不是線程安全的,爲什麼不通過設計使線程安全?
- 29. 線程之間的上下文切換
- 30. 如何使用SFML 2.2切換OpenGL上下文的線程?
請描述您的不安全的代碼(C#或extern?) –