2011-07-16 55 views
3

我們正在構建一個對延遲敏感的應用程序。 我們的完整應用程序在除鎖定的過程中需要大約2500個時鐘週期,並且需要獲取和釋放兩個鎖。 我們預計99.98%的時間沒有爭用。 使用pthread鎖定和解鎖需要大約1800個附加週期。 更快配方中的任何指針?基於原子操作寫入鎖定可能會非常棘手。 我們希望在Linux頭文件中使用標準代碼,或者在可能的情況下增加頭文件。鎖定速度比pthreads更快

+0

如果這是幾乎沒有爭用的情況,那麼應該先嚐試旋轉鎖定,它們比鎖定更好(在某些情況下,因爲它會阻止線程進入阻止狀態)。原子操作也是不錯的選擇,但使用它們很困難。主要的原子操作用於可伸縮性相關的程序。 – peeyush

+0

順便說一句btw你怎麼用這種方式來描述你的代碼? – peeyush

+0

嘗試了pthread_spinlock。在外部環境下的時間減少40%,但仍然太多。我可以嘗試查看http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Atomic-Builtins.html#Atomic-Builtins中的原子操作,但這可能會非常棘手。 –

回答

相關問題