資料介紹
軟件簡介
Php-affinity 通過設(shè)置cpu親和性,可以將進程綁定到一個cpu核心上。一般在如下場景我們可能會希望修改進程的cpu親和性:
-
?頻繁的并行運算
-
?線程可伸縮性測試(通過增加cpu核心數(shù)量模擬線性擴展)
-
?運行時間敏感的,決定性的進程
向nginx,swoole等開源軟件,都提供了設(shè)置cpu親和性的方法。nginx官方建議worker數(shù)量等同于cpu核心數(shù)量也是為了將一個進程綁定到一個cpu核心上,同時避免進程切換帶來的開銷。
Php本身并沒有提供設(shè)置cpu親和性的函數(shù),我們可以通過兩種方式實現(xiàn):
-
?調(diào)用系統(tǒng)命令,修改當前進程cpu親和性
-
?編寫php擴展,封裝系統(tǒng)調(diào)用。
php-affinity是使用c編寫的php擴展,項目地址:https://github.com/huyanping/php-affinity
????/** ?????????????????????*?set?CPU?affinity ?????????????????????* ?????????????????????*?@param?$cpu_id ?????????????????????*?@return?bool ?????????????????????*/ ????????????????????functionsetaffinity($cpu_id){ ????????????????????????$num=?getcpucores(); ????????????????????????if($cpu_id>=?$num){ ????????????????????????????returnfalse; ????????????????????????} ????????????????????????$set=?system_call($cpu_id); ????????????????????????if($set===?-1){ ????????????????????????????returnfalse; ????????????????????????} ????????????????????? ????????????????????????returntrue; ????????????????????} ????????????????????? ????????????????????/** ?????????????????????*?get?CPU?affinity ?????????????????????* ?????????????????????*?@return?bool ?????????????????????*/ ????????????????????functiongetaffinity(){ ????????????????????????$cpu_id=?system_call(); ????????????????????????if($cpu_id===?-1){ ????????????????????????????returnfalse; ????????????????????????} ????????????????????????return$cpu_id; ????????????????????} ????????????????????? ????????????????????? ????????????????????/** ?????????????????????*?get?number?of?CPU ?????????????????????* ?????????????????????*?@return?bool ?????????????????????*/ ????????????????????functiongetcpucores(){ ????????????????????????$nums=?system_call(); ????????????????????????if($nums===?-1){ ????????????????????????????returnfalse; ????????????????????????} ????????????????????????return$nums; ????????????????????}
提供了如下三個函數(shù):
-
setaffinity – 設(shè)置cpu親和性
-
getaffinity – 獲取cpu親和性
-
getcpucores – 獲取cpu核心數(shù)量
API 如下:
參考文獻:
- PHP-XLSWriter PHP Excel C擴展
- PHP Taint檢測XSS漏洞的擴展
- PHP教程:foreach使用引用注意的問題
- PHP學習教程分享 7次下載
- 如何使用PHP-X快速開發(fā)一個PHP擴展 8次下載
- 學習PHP需要注意那幾點 8次下載
- PHP教程之PHP與MySQL數(shù)據(jù)庫連接的資料說明 8次下載
- smarty如何調(diào)用PHP常量 3次下載
- 如何使用PHP-X快速開發(fā)一個PHP擴展 9次下載
- PHP基礎(chǔ)知識的詳細資料總結(jié) 7次下載
- PHP多個版本的比較資料說明 0次下載
- PHP從入門到精通(免費) 9次下載
- php程序?qū)嵗螺d
- PHP/MySQL教程 0次下載
- PHP完全自學手冊
- phpy:PHP與Python互調(diào)用庫 1042次閱讀
- PHP中的生成器 879次閱讀
- php版冒泡排序是如何實現(xiàn)的? 960次閱讀
- 如何在Ubuntu 20.04安裝PHP 8.1并將其與Nginx集成 3511次閱讀
- php是什么語言編寫的 5024次閱讀
- 一文知道PHP的優(yōu)點和缺點 7023次閱讀
- 為什么PHP的開發(fā)效率比java高但是java比PHP流行 1w次閱讀
- PHP與Python對比 如何選擇? 4548次閱讀
- php開發(fā)中遇到的難點有哪些_十大php開發(fā)常見問題盤點 1.8w次閱讀
- php開發(fā)環(huán)境的搭建和使用 3474次閱讀
- PHP 集成開發(fā)環(huán)境比較 1939次閱讀
- 實現(xiàn)php毫秒定時器方法詳解 2586次閱讀
- php實現(xiàn)定時器任務(wù)方法詳解 1435次閱讀
- PHP定時器實現(xiàn)每隔幾秒運行一次方法詳解 1.6w次閱讀
- PHP實現(xiàn)定時任務(wù)的幾種方法詳解 7162次閱讀
下載排行
本周
- 1人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 9次下載 | 免費
- 2Altium Designer元件庫
- 17.11 MB | 6次下載 | 免費
- 324V2A開關(guān)電源PCB資料分享
- 0.23 MB | 4次下載 | 1 積分
- 4GD100PIX120C6SNA規(guī)格書
- 0.98 MB | 3次下載 | 免費
- 5Multisim模擬電路仿真教程
- 1.93 MB | 1次下載 | 3 積分
- 6BK7258英文規(guī)格書
- 1.67 MB | 1次下載 | 免費
- 7RA4L1硬件手冊
- 21.89 MB | 1次下載 | 免費
- 8RA4L1_SENSOR-V1原理圖
- 754.36 KB | 1次下載 | 免費
本月
- 1晶體三極管的電流放大作用詳細說明
- 0.77 MB | 32次下載 | 2 積分
- 2雙極型三極管放大電路的三種基本組態(tài)的學習課件免費下載
- 4.03 MB | 25次下載 | 1 積分
- 3AIWA HS-J303 MKⅡ維修手冊
- 22.47 MB | 24次下載 | 10 積分
- 4九陽豆?jié){機高清原理圖
- 2.47 MB | 23次下載 | 1 積分
- 5多級放大電路的學習課件免費下載
- 1.81 MB | 21次下載 | 2 積分
- 6AIWA HS-J202/HS-J202M/HS-J800維修手冊
- 13.60 MB | 16次下載 | 10 積分
- 7東芝彩色電視機29SF6C維修說明書
- 4.86 MB | 9次下載 | 1 積分
- 8人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 9次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183338次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論