fly*_*ris 6 php sockets ipc stream shared-memory
我想知道,这是在PHP中将数据从一个进程发送到另一个进程的最快方法吗?数据只是一个短字符串.Curretly我有一个开发了AF_UNIX套接字的解决方案,但基准测试显示将数据从一个进程传递到另一个进程需要0.100毫秒.我想知道,如果共享内存可以更快吗?但是,我不知道,如果有任何新的数据写入,如何让其他进程定期检查共享内存来检测?
当前解决方案
$server = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_bind($server, '/tmp/mysock');
socket_listen($server);
while(true) {
$r = $clients;
if(socket_select($r, $w, $e, 5) > 0) {
$client = socket_accept($server);
$d = trim(socket_read($client, 256, PHP_NORMAL_READ));
echo (microtime(true)-$d)."\n";
socket_close($client);
}
flush();
}
socket_close($server);
Run Code Online (Sandbox Code Playgroud)
和客户:
$d = microtime(true)."\n";
$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_connect($socket, '/tmp/mysock');
socket_write($socket, $d, strlen($d));
socket_close($socket);
Run Code Online (Sandbox Code Playgroud)
这个解决方案完全正常,很好,但结果是这样的:
0.00019216537475586
9.5129013061523E-5
0.00011920928955078
0.00011801719665527
7.6055526733398E-5
Run Code Online (Sandbox Code Playgroud)
任何想法,如何使这个脚本更快或开发更快(可能是共享内存)的解决方案?
在此先感谢,乔纳斯
归档时间: |
|
查看次数: |
4032 次 |
最近记录: |