我目前正在使用从一组 wcf 服务中读取数据的 mvc4 应用程序。当前,当用户点击页码时,如果触发 wcf 请求以获取页面不同部分的数据。我想提高它的性能。
我的想法是,当用户登陆页面时,会进行一次 wcf 调用,该调用会检索多次调用之前执行的所有必要数据,并将其中的数据放入用户请求的 httpcontext 中。
这是否比通过命名管道调用单个但较大的 wcf 调用或命名管道下的多个较小调用的方法提高了性能?将大量数据放入 httpcontext 是否会对性能产生影响?
我目前正在使用从一组 wcf 服务中读取数据的 mvc4 应用程序。当前,当用户点击页码时,如果触发 wcf 请求以获取页面不同部分的数据。我想提高它的性能。
我的想法是,当用户登陆页面时,会进行一次 wcf 调用,该调用会检索多次调用之前执行的所有必要数据,并将其中的数据放入用户请求的 httpcontext 中。
这是否比通过命名管道调用单个但较大的 wcf 调用或命名管道下的多个较小调用的方法提高了性能?将大量数据放入 httpcontext 是否会对性能产生影响?
我认为你试图通过产生更多问题来解决一个问题。如果您一次查询所有数据并存储在 httpcontext 中,它将加快打开新页面的性能,但第一次打开页面会花费相当长的时间。此外,如果将数据存储在每个用户的 httpcontext 中,那么您可能很容易耗尽内存,特别是如果您一次有很多用户。
我认为首先您需要定位问题并找到性能不佳的根本原因。它可能是一个查询,也可能是一些数据库锁。无论如何,缓存是个好主意,但不要使用 httpcontext 。使用 ASP.NET 缓存或一些分布式缓存,如 App Fabric。这些工具将为您提供许多内置功能,并且您可以更轻松地扩展您的应用程序。
希望能帮助到你。