rpc — проблема производительности Thrift php lib

Недавно я использовал php thrift client для вызова некоторой службы, реализованной java thrift server.

Но я обнаружил, что когда я передаю большое количество сложных данных, php тратит много времени на сериализацию и десериализацию данных из-за десятков тысяч TBinaryProtocol::readXXX() или же TBinaryProtocol::writeXXX()
звонки.

Любая хорошая идея, чтобы оптимизировать это?

0

Решение

TBufferedTransport или же TFramedTransport может помочь Первая имеет только промежуточный буфер для сокращения вызовов ввода / вывода, а вторая также изменяет транспортный стек, изменяя проводные данные (то есть Int32, содержащее общую длину блока данных, вставляется в начале).

Следовательно, TBufferedTransport это чисто местная вещь, в отличие TFramedTransport должен использоваться как на клиенте, так и на сервере. Кроме того, оба работают очень похоже.

Кроме того, некоторые из доступных типов серверов требуют TFramedTransportпоэтому для любого нового API это может быть хорошим выбором для добавления TFramedTransport с начала.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]