- 授权协议: MIT
- 开发语言: Objective-C
- 操作系统: 跨平台
- 软件首页: https://github.com/huyanping/php-affinity
- 软件文档: https://github.com/huyanping/php-affinity
软件介绍
Php-affinity 通过设置cpu亲和性,可以将进程绑定到一个cpu核心上。一般在如下场景我们可能会希望修改进程的cpu亲和性:
频繁的并行运算
线程可伸缩性测试(通过增加cpu核心数量模拟线性扩展)
运行时间敏感的,决定性的进程
向nginx,swoole等开源软件,都提供了设置cpu亲和性的方法。nginx官方建议worker数量等同于cpu核心数量也是为了将一个进程绑定到一个cpu核心上,同时避免进程切换带来的开销。
Php本身并没有提供设置cpu亲和性的函数,我们可以通过两种方式实现:
调用系统命令,修改当前进程cpu亲和性
编写php扩展,封装系统调用。
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;
}提供了如下三个函数:
setaffinity – 设置cpu亲和性
getaffinity – 获取cpu亲和性
getcpucores – 获取cpu核心数量
API 如下:
参考文献:
神经网络与机器学习(原书第3版)
[加] Simon Haykin / 申富饶、徐烨、郑俊、晁静 / 机械工业出版社 / 2011-3 / 79.00元
神经网络是计算智能和机器学习的重要分支,在诸多领域都取得了很大的成功。在众多神经网络著作中,影响最为广泛的是Simon Haykin的《神经网络原理》(第3版更名为《神经网络与机器学习》)。在本书中,作者结合近年来神经网络和机器学习的最新进展,从理论和实际应用出发,全面、系统地介绍了神经网络的基本模型、方法和技术,并将神经网络和机器学习有机地结合在一起。 本书不但注重对数学分析方法和理论的探......一起来看看 《神经网络与机器学习(原书第3版)》 这本书的介绍吧!
