【问题标题】:Thrift php lib performance issueThrift php lib 性能问题
【发布时间】:2017-07-14 04:56:12
【问题描述】:

我最近使用php thrift客户端调用java thrift server实现的一些服务。

但是我发现当我传输大量复杂数据的时候,php因为TBinaryProtocol::readXXX()或者TBinaryProtocol::writeXXX()的上万条,花费了大量的时间序列化和反序列化数据 来电。

有什么好主意来优化这个吗?

【问题讨论】:

标签: php rpc thrift


【解决方案1】:

TBufferedTransportTFramedTransport 可能会有所帮助。前者之间只有一个缓冲区以减少 I/O 调用,而后者还通过修改线数据来更改传输堆栈(即在开头插入一个保存数据块总长度的 Int32)。

因此,TBufferedTransport 是一个纯本地的东西,相比之下TFramedTransport 必须在客户端和服务器上都使用。除此之外,两者的工作方式非常相似。

此外,一些可用的服务器类型需要TFramedTransport,因此对于任何新的API,从一开始就添加TFramedTransport 可能是一个不错的选择。

【讨论】:

  • 谢谢。我发现使用 TBinaryProtocolAccelerated 和 php 扩展 thrift_protocol 是最好的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 2016-09-05
  • 2018-01-09
  • 2011-03-20
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多