gpt4 book ai didi

c# - Silverlight 4 最快的 WCF 绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 12:35:55 24 4
gpt4 key购买 nike

我正在处理一个项目,其中 Silverlight 4 客户端调用返回大量数据的 WCF 网络服务。一些分析表明

  • webservice 方法的实际执行时间不到一秒(调用另一台服务器/生成非常大的数据集/等等,它在那里已经非常优化)

  • 数据传输依赖于网络,但一般不会有问题-需要什么就拿什么

  • 客户端收到 http 应答(我在 Fiddler 中将其视为已完成)和 Silverlight 客户端中触发的 Completed 事件之间的时间:~15 秒(IE/firefox 之间没有区别/ Chrome )

我想这 15 秒的延迟大部分花在了反序列化上。

我的绑定(bind)使用 HttpTransportBinaryMessageEncoding,并在其之上进行 gzip 压缩。Gzip 压缩似乎对性能没有影响:无压缩和最大压缩级别之间的差异几乎不存在。 http 答案是 ~15 Mb 未压缩和 ~400 kb 压缩(即使使用二进制 XML 也有很多开销!)

注意:Web 服务完全是临时的,我对互操作性不感兴趣,并且可以完全自由地选择协议(protocol)。

一个明显的解决方案是传输较少的数据,但引入分页需要对架构进行一些目前无法实现的重大更改。减少数据集也相当困难,因为该解决方案完全可由最终用户自定义,而且如您所知,用户并不总是知道他们在做什么,最终会产生大量请求。

我只剩下 wcf 绑定(bind):这个项目从 SL 2 开始,通过 SL 3 和 SL 4 发展,所以我可能错过了 Silverlight 4 中引入的某种更快的绑定(bind)。我可以使用另一个更快的编码器(或绑定(bind))来避免客户端上的反序列化瓶颈吗?

最佳答案

“作弊”(仅提高预期性能)怎么样?

在第一次调用时返回一小部分数据,然后启动一个后台进程来获取您需要的所有数据。如果您显示的数据是只读的,那么这可能会有所帮助。

编辑:查看优先级绑定(bind)...它允许您将多个数据源绑定(bind)到您的网格。如果慢速连接稍后恢复,silverlight 将自动绑定(bind)新数据源...

关于c# - Silverlight 4 最快的 WCF 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com