2017-02-23 59 views
0

我最近使用php thrift客户端来调用java节俭服务器实现的某些服务。节俭php lib性能问题

但我发现,当我转移了大量复杂的数据中,PHP花了很多时间的序列化和反序列化,因为成千上万的TBinaryProtocol::readXXX()TBinaryProtocol::writeXXX() 调用数据。

任何好主意,以优化?

+0

如果您怀疑Thrift中存在错误或问题,我建议在[mailng lists](https://thrift.apache.org/mailing)上讨论此问题。 – JensG

回答

1

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

因此,TBufferedTransport是一个纯粹的本地事,相反TFramedTransport必须在客户端和服务器上使用。除此之外,两者工作非常相似。

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

+0

谢谢。我发现使用TBinaryProtocolAccelerated和php扩展thrift_protocol是最好的方法。 –