Проблема, с которой вы столкнулись, связана с медленной скоростью десериализации на клиенте, а не со скоростью передачи данных. Сначала вы должны измерить скорость передачи с помощью Firebug или аналогичного инструмента, а затем вычесть это время из общего времени вызова RPC, чтобы выяснить, сколько времени тратится во время десериализации. Грубо говоря, распад происходит так:
Общее время RPC = время, проведенное на сервере + время в сети +
десериализации времени
Сначала вы должны выяснить, какая часть является реальным узким местом, и если это окажется скоростью передачи данных, вам, вероятно, придется пересмотреть свой дизайн. См. мой ответ на связанный вопрос.
EDIT:
ИМО, пока вы не рассчитали приведенное выше распределение времени, вы должны отложить в сторону вопрос о том, подходит ли вам JSON или другой подход