在两个应用程序之间传输大量数据的最快方式 我目前有一个C++程序,通过一个套接字接收来自Web应用程序的请求,并生成一个JSON文件(150 Ko),该文件将被这个应用程序读取。 我想知道直接通过套接字提供数据是否会更快 如果是这样的话,最快的发送格式是什么(Json、Xml、我自己解析的personnal格式等等) 我应该一次发送整个包(150KO)还是通过套接字流式传输 如果我理解你写的东西正确,Web服务器就向你的C++程序转发请求,你希望PHP应用程序通过向Web服务器发出Web请求来读取数据,然后将请求转发给C++程序来响应。

在两个应用程序之间传输大量数据的最快方式 我目前有一个C++程序,通过一个套接字接收来自Web应用程序的请求,并生成一个JSON文件(150 Ko),该文件将被这个应用程序读取。 我想知道直接通过套接字提供数据是否会更快 如果是这样的话,最快的发送格式是什么(Json、Xml、我自己解析的personnal格式等等) 我应该一次发送整个包(150KO)还是通过套接字流式传输 如果我理解你写的东西正确,Web服务器就向你的C++程序转发请求,你希望PHP应用程序通过向Web服务器发出Web请求来读取数据,然后将请求转发给C++程序来响应。,php,c++,sockets,Php,C++,Sockets,以下是提高此设置速度的三种方法: 考虑使用流解析器解析从套接字读取的数据。这将允许PHP应用程序在从套接字读取所有数据之前开始消费和处理数据 许多JSON库不提供流解析API(请参阅)。例如,PHP的内置JSON API没有。但是,你看 PHP有一个内置的XML拉式解析器。如果C++程序生成XML数据,则可以使用PHP中的XMLRead来逐步解析XML,这意味着PHP应用程序不必等到数据完全下载为止。 > P>如果C++程序正在从文件读取JSON,并将文件内容发送到套接字,请考虑使用。另见

以下是提高此设置速度的三种方法:

  • 考虑使用流解析器解析从套接字读取的数据。这将允许PHP应用程序在从套接字读取所有数据之前开始消费和处理数据

    许多JSON库不提供流解析API(请参阅)。例如,PHP的内置JSON API没有。但是,你看

    PHP有一个内置的XML拉式解析器。如果C++程序生成XML数据,则可以使用PHP中的XMLRead来逐步解析XML,这意味着PHP应用程序不必等到数据完全下载为止。

  • > P>如果C++程序正在从文件读取JSON,并将文件内容发送到套接字,请考虑使用。另见

    <> >如果C++程序和PHP应用程序在同一服务器上运行,则可以使用共享内存段。这将消除在套接字上传输数据的需要,因为C++程序和PHP应用程序都可以访问内存段。C++程序将所有的数据写入共享内存段,然后PHP应用程序读取数据。 有关更多信息,请参见PHP


    “最快”是指“快速传输”还是“快速处理”?您可以尝试基本的压缩算法,并计算响应时间。最快的方法是快速传输和处理它。。。但是我想的越多,我会说,处理时间实际上就是我想要减少的原因。你应该看看谷歌的Protobuf。不知道avout Protobuf。。看起来真不错!但它只会帮助我减少数据的校正时间,而不会读取(因为它与php不兼容)什么是
    150ko
    、150kbytes或kilo-octets或…?在我的情况下,第三个选项似乎很完美!。。我会努力学习如何做到这一点。。。我不知道如何告诉C++程序,我的PHP分配的共享内存在哪里app@Arcyno:我肯定会先尝试1和2,看看这是否能提高应用程序的速度。150 KiB不是很多数据,因此应用程序似乎主要不是I/O绑定的。对于IDEA三,您需要修改C++来有效调用PHP的SmithPutiVar()。另外,请注意,PHP内置的共享内存例程(以数据编组/解编组的形式)仍然存在一些开销。您最好的选择可能是为PHP编写一个自定义扩展,以便更直接地公开共享内存中的数据。