![]() |
1
3
虽然HTTP确实有一些开销,但是如果这正在成为您数据使用的重要组成部分,那么我会怀疑您的API太“健谈”,应该考虑更少的消息(每个消息承载更多的负载)。 下一点是:我们如何减少给定负载量的带宽?压缩是一种选择,但在某些平台上可能是一个问题。另一种方法是使用一种串行化格式,这种格式具有固有的密集性和处理效率(就CPU周期而言,因为您使用的是低功耗设备)。为此,像“协议缓冲区”之类的东西是理想的。 Protobuf NET是.NET协议缓冲区的一个与CF兼容的实现;CF构建没有所有好的WCF功能(因为CF不支持它们),但是它可以非常有效地工作。 另外,如果你 做 应该考虑使用HTTP,然后使用MTOM,因为这样可以减少二进制数据的编码开销(即protobuf-net将使用什么)。 移动到UDP 可以 是一个选项,但我会尝试类似http+protobuf net+mtom的方法 第一 (再加上一个不那么“健谈”的API),看看它是如何堆积起来的。 我还应该注意到 现在的 (可下载)Protobuf NET的版本与CF有一些“纠结”;它可以工作,但速度不够快等(由于CF上的元编程的限制)。“V2”产品(尚未发布)解决了所有这些问题,允许在CF上完全静态(和快速)执行。最重要的是,它是免费的。 |