我們正在構建一個對延遲敏感的應用程序。 我們的完整應用程序在除鎖定的過程中需要大約2500個時鐘週期,並且需要獲取和釋放兩個鎖。 我們預計99.98%的時間沒有爭用。 使用pthread鎖定和解鎖需要大約1800個附加週期。 更快配方中的任何指針?基於原子操作寫入鎖定可能會非常棘手。 我們希望在Linux頭文件中使用標準代碼,或者在可能的情況下增加頭文件。鎖定速度比pthreads更快
3
A
回答
2
作爲建議,請從Intel's Threading Building Blocks library嘗試spin_mutex
。它是開源的(GPLv2),所以你也可以檢查源的實現細節。你
1
你沒有太多的選擇。 Pthread庫儘可能通用。如果你更具體,更少的人會使用它,因此每個人都最終實現自己的,使一團糟。
恐怕你必須自己寫,這特別符合你的要求。我會建議這樣讀: http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html
我正在讀它自己。
相關問題
- 1. ImageIO以最快速度比GZIPStream更快
- 2. C - 在使用PThreads時更快地鎖定整數
- 3. 速度更快嗎?
- 4. jQuery速度太快(比mysql快)
- 5. php pthreads鎖定變量
- 6. 爲什麼雙重檢查鎖定速度比Joshua Bloch快25%Effective Java示例
- 7. pthreads鎖恢復
- 8. applyForce速度應該更快
- 9. CSS優化速度更快
- 10. JavaScript加載速度更快?
- 11. 加載UIImagePickerController速度更快?
- 12. 爲什麼在.NET中投射速度比反射速度快?
- 13. __forceinline比__inline執行速度快嗎?
- 14. Java:Netbeans調試會話比正常運行速度更快
- 15. SQL查詢比存儲過程運行速度更快
- 16. 多線程隊列操作不比單線程速度更快
- 17. 鼠標移動速度比提示更快
- 18. 比較字符串或字節數組的速度更快嗎?
- 19. 瀏覽器運行速度比webdriver selenium命令更快
- 20. 獲取表列的速度比信息架構更快?
- 21. 比用瓶子推Heroku的速度更快
- 22. 在python中搜索的速度比嵌套循環更快
- 23. 比較圖像與JavaScript時速度更快嗎?
- 24. MySQL的插入速度比PHP更快,這是預期的嗎?
- 25. Visual Studio C#2010 Express調試運行速度比Release快更多
- 26. Python套接字發送速度比接收器更快
- 27. CUDA程序比CPU程序慢,但內核速度更快?
- 28. 移動網站比桌面移動速度更快
- 29. OpenCV捕獲的視頻運行速度比實時更快嗎?
- 30. 從SQLite中的固定寬度列讀取速度更快嗎?
如果這是幾乎沒有爭用的情況,那麼應該先嚐試旋轉鎖定,它們比鎖定更好(在某些情況下,因爲它會阻止線程進入阻止狀態)。原子操作也是不錯的選擇,但使用它們很困難。主要的原子操作用於可伸縮性相關的程序。 – peeyush
順便說一句btw你怎麼用這種方式來描述你的代碼? – peeyush
嘗試了pthread_spinlock。在外部環境下的時間減少40%,但仍然太多。我可以嘗試查看http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html#Atomic-Builtins中的原子操作,但這可能會非常棘手。 –