多层环境中的LINQ基准测试

时间:2008-10-05 07:21:33

标签: wcf linq-to-sql benchmarking

我参与了一个分层应用程序的开发,该应用程序使用与Web服务器分离的LINQ2SQL和WCF上的NET.TCP绑定。

我的问题是:

  1. 我应该采取什么样的措施 实现最佳表现?
  2. 由于返回的实体对象 LINQ需要转换为 IEnumerable列表要序列化 无论如何,无论如何都要删除 这种依赖?

2 个答案:

答案 0 :(得分:1)

1)专注于正确规范化的数据库设计。我会说,当你被迫在代码与数据库设计中进行设计权衡时,如果性能是你的目标,那么在对象设计而不是数据库设计中进行权衡。了解您无法使用Linq to SQL进行正确的超类型/子类型数据库设计(我告诉您需要使用EF)。

2)取决于你的意思。如果您正在询问如何通过网络序列化匿名类,那么简单的答案就是:“你不能,所以不要尝试”。如果要在线上放置对象列表,只需在IEnumerable集合上使用ToArray()扩展方法,即可通过线路传送业务对象的数组。

答案 1 :(得分:0)

除非编译查询,否则Linq to SQL非常慢。否则,您的应用程序将受CPU限制,因为大部分时间将表达式树转换为SQL。

如果您使用编译查询,我们正在谈论10倍的性能提升。试试吧:))