gpt4 book ai didi

php - PHP 中最快的 IPC

转载 作者:可可西里 更新时间:2023-11-01 13:31:12 26 4
gpt4 key购买 nike

我想知道,在 PHP 中将数据从一个进程发送到另一个进程的最快方法是什么?数据只是一个短字符串。目前我有一个开发了 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);

和客户:

$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);

这个解决方案完全可以,很好,但是结果是这样的:

0.00019216537475586
9.5129013061523E-5
0.00011920928955078
0.00011801719665527
7.6055526733398E-5

任何想法,如何使这个脚本更快或开发一个更快(可能是共享内存)的解决方案?

提前致谢,乔纳斯

最佳答案

共享内存是进程间数据交换最快的方式。对于同步使用信号量。

关于php - PHP 中最快的 IPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com