PHP读取服务器响应的最快方法

PHP读取服务器响应的最快方法,php,performance,fread,fgets,Php,Performance,Fread,Fgets,我在使用fgets获取服务器对我正在进行的一些批处理数据库调用的响应时,遇到了一些实际问题 我发送了一批,比如10000个呼叫,我跟踪了fgets的延迟,这导致我的应用程序速度延迟,因为每个呼叫的响应都需要抓取 我发现这条线索很好地解释了这个问题,但他正在读取一个文件,而不是服务器响应,因此fread可能有点棘手,因为我可能会得到下一行的一部分,以及我不想要的额外内容 因此,我的问题是,作为fgets的替代方案,从服务器读取响应的最佳/最快方式是什么?这里的信息确实不够 你大概是说你正在某个地方

我在使用
fgets
获取服务器对我正在进行的一些批处理数据库调用的响应时,遇到了一些实际问题

我发送了一批,比如10000个呼叫,我跟踪了fgets的延迟,这导致我的应用程序速度延迟,因为每个呼叫的响应都需要抓取

我发现这条线索很好地解释了这个问题,但他正在读取一个文件,而不是服务器响应,因此
fread
可能有点棘手,因为我可能会得到下一行的一部分,以及我不想要的额外内容


因此,我的问题是,作为fgets的替代方案,从服务器读取响应的最佳/最快方式是什么?

这里的信息确实不够

你大概是说你正在某个地方运行一些PHP,它调用fgets来读取来自其他东西的数据——但是什么是其他东西呢?你暗示它不是一个文件,那么它是什么呢?本地节目?烟斗?网络插座?网页。。。还有别的吗

你能用不同的工具读得更快吗?你试过什么?您运行的是什么操作系统?您是否有运行netcat或类似软件的shell访问权限

另外,您正在谈论滞后,而您所指的“bug”主要是解决带宽问题

如果对这个问题不多了解,就不可能提出解决方案

C.

读取服务器响应的最快方式应该是文件获取内容(如果有流,则为流获取内容)。嗯,这是检索数据的最快方法,但在查看内存使用情况时,这通常是最浪费的方法,因为它一次将所有文件读取到内存中,而fgets不需要在内存中保留多行

您还可以使用fread,它比fgets快,并且可以以您可以定义的特定大小的块读取文件

如果您依赖于逐行读取数据,则可以使用file(),这将比file_get_contents慢,但它会为您提供一个包含文件行的数组


如上所述,为了给您一个更好的答案,我们需要更多的信息。

您在问什么?php语言没有类似于速度处理的功能,但这种语言不适合。你能展示一些代码吗?这些是什么类型的数据库调用?它们是对Redis NoSQL Server的调用当然,很好的一点-我使用PHP框架(Predis)与Redis数据库交互。似乎当我通过套接字连接从PHP向Redis发送一批命令时,用于读取Redis服务器响应的fgets导致了延迟。基本上Predis框架使用FGET从服务器读取响应,而这正是所有时间花费的地方——通过网络发送和接收数据。因此,下一个问题是,您如何知道问题在PHP端?你和其他客户测试过吗?您是否尝试过以非阻塞方式运行套接字?您是否确定延迟是在PHP中,而不是在数据库端。@AbiusX:file\u get\u contents应该正是这样做的。如果你应该有不同的行为,请解释。