Мы привыкли использовать прямой XML по проводам и должны были использовать настраиваемую сериализацию (т. Е. Ручную) для множества объектов. Хотя не JSON, у нас были потери производительности из-за этого ограничения. Как только мы перевели все наши технологии на аналогичную архитектуру, мы смогли переключиться на двоичную сериализацию, которая работала намного лучше.
Однако на объектах, где у нас были проблемы с производительностью из-за размера, мы внесли некоторые изменения. Так как у нас был доступ к коду с обоих концов (и оба были c #), мы смогли двоично сериализовать полезную нагрузку, а затем закодировать ее с помощью base64, поскольку это должен был быть текст по проводам. Это помогло с точки зрения размера объекта, и сериализация прошла немного быстрее.
Поскольку вы переходите с Java на C #, у вас не будет такой роскоши. Таким образом, единственное, что я могу придумать в вашем случае, это попытаться оптимизировать анализ ответа JSON. Возможно, вы сможете использовать некоторые инструменты профилирования кода, чтобы помочь вам определить части, которые вызывают у вас проблемы с производительностью, а затем попытаться оптимизировать их. Кроме того, при десериализации в JSON убедитесь, что вы используете построитель строк для построения вашей окончательной строки. Если вы выполняете стандартные операции concat, это также снижает производительность.
Кроме того, вы можете проверить, что я видел в Интернете несколько сериализаторов JSON, написанных для c #, некоторые из них могут быть быстрее, чем то, что вы делаете, кто знает.
Не уверен, поможет ли это вам так сильно, но есть некоторая информация о вещах, которые мы видели при передаче сообщений на основе строк.
ОБНОВЛЕНИЕ: Только что видел это на dotnetkicks: JSON.Net это обновление от james для сериализаторов json.net. Может помочь.