我有两个应用程序通过TCP套接字进行通信。目前,这些应用程序都是本地应用程序,但将来,服务器应用程序将在云上运行(Amazon EC2实例)。谷歌协议缓冲区VS JSON:C++到C#通信
服务器应用程序是用C++
客户端应用程序被写入C#
我送从服务器的目的是客户端具有以下属性:
Guid Id
uint8* ImageData
虽然,我可能希望在将来添加额外的属性。不过,我会尽量保持这个对象尽可能小,因为延迟在这里很重要。
现在,我正在使用JSON在程序之间进行通信,但我对Google协议缓冲区(GPB)感到疑惑,因为虽然JSON非常好,并且可以工作在东部,加上它是人类可读的,但它确实有很大开销和从外观上看,正在引起通信的显着延迟。
我在找什么,是一种更高效的客户端和服务器应用程序之间通信的方法。
GPB如何与JSON进行比较?有没有人有高性能使用GPB的经验?有没有其他协议可能更适合这里?
Google协议缓冲区经过优化以节省带宽。从这个角度来看,JSON(因为它是面向文本的)非常糟糕。 –