php client调用python server耗时太长
@andot 你好,想跟你请教个问题:
现在用php客户端调用python的同步server大概要耗时2s,而整个过程会耗时2.6s左右
使用的http://127.0.0.1:8181,传入的参数只有一个字符串,大概有40k左右,而python那边真正执行也只耗时0.5s不到,传输效率有点低啊
我刚刚测试了下,用您以前写的phprpc调用,整个过程不到0.6s
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
引用来自“andot”的评论
原来是这样,py自带的那个wsgi服务器仅用于调试,因为支持wsgi的服务器有很多,所以通常情况下,直接使用HproseHttpService这个类作为服务就可以了(它是个标准的WSGI app),那个HproseHttpServer 仅用于在没有安装 WSGI 服务器的情况下作为开发调试使用。这部分内容,在文档里写过。
原来是这样,py自带的那个wsgi服务器仅用于调试,因为支持wsgi的服务器有很多,所以通常情况下,直接使用HproseHttpService这个类作为服务就可以了(它是个标准的WSGI app),那个HproseHttpServer 仅用于在没有安装 WSGI 服务器的情况下作为开发调试使用。这部分内容,在文档里写过。
引用来自“andot”的评论
看你的描述,也不是数据解析速度慢的问题。难道是 DNS 解析时间慢?这个我也搞不清楚了。
用什么http server运行的,改用gunicorn之类的运行试试
引用来自“wei2011”的评论
用什么http server运行的,改用gunicorn之类的运行试试
看你的描述,也不是数据解析速度慢的问题。难道是 DNS 解析时间慢?这个我也搞不清楚了。
是调用的时候直接$bytes = new BytesIO($str),然后将$bytes当做参数调用python是吧? 我刚刚试了,好像也没有用,我用pecl扩展里面的HproseBytesIO,能减少一定的时间,大概0.2s左右,但是时间还是很长 我看new BytesIO前后两种调用方式,python端打印出的数据长度是一样的 我感觉是不是跟php的curl调用有关?
对了,我的curl版本是7.19.7
这样的话,你试试传输时,在 PHP 端使用 $bytes = new BytesIO($str),之后来传输 $bytes,应该可以提高速度。
我这个结果就是在安装了pecl扩展后得到的,我把so扩展去除后,二者的时间基本一样
问题不在于 python 服务器,你可以在 php 客户端安装上 hprose 的 pecl 扩展。这样就可以高效的传输字符串了。