【发布时间】:2012-07-31 11:33:10
【问题描述】:
我是 WCF 数据服务的新手。我使用 ADO .NET 实体框架在 WCF 数据服务上创建了一个示例 POC。
当我通过添加 WCF 数据服务作为服务引用(1000 行的简单选择语句)通过测试项目测试数据服务时,大约需要 25 秒。 在 25 秒中,从数据库查询数据只用了 5 秒(在分析数据库后得到此信息)。
奇怪的是,WCF 数据服务仅用于翻译和传输就需要大约 20 秒。
知道为什么翻译和运输要花这么多时间吗?
【问题讨论】:
-
我们需要更多详细信息才能在此问题上取得任何进展 - 如您所见,这些 URL 返回 500 个实体并在 odata.netflix.com/Catalog/Titles 和 odata.netflix.com/Catalog/Titles?$format=json。最大的决定因素应该是电线尺寸。这些有效载荷的大小只有几兆。你能告诉我们更多细节吗?
-
我正在使用预加载来预先获取导航属性。所以线路上的总大小约为 105MB.so,这 105MB 是否在增加 20 秒的开销中起作用,或者是否有任何其他原因可能导致这种情况,因为我使用同一台机器作为托管服务和测试客户端,负载大小是否会添加这样在这种情况下会产生巨大的影响吗?
-
这很可能是问题所在 - 105MB 在网络上是巨大的。您应该只急切加载实际将在同一屏幕上显示的内容。这里是这样吗?您真的需要所有 1000 条记录和扩展数据吗?你能告诉我们更多关于你的用例吗?
-
@MarkStafford-MSFT - 是的,我不会在 UI 上使用整组数据。因此,实体列表的延迟加载和特定实体的急切加载可以大大提高性能。感谢您的宝贵意见:)
标签: performance wcf-data-services