Asp.net mvc 在.NET3.5C中处理胖Web服务#
我正在处理一个肥胖的第三方Web服务,它返回大约3mb的数据用于一个简单的搜索结果,该响应中大约50%的数据是垃圾数据 然后将这些数据重新映射到我自己的结果对象并丢弃响应,这样我就在内存中存储1-2MB用于过滤和排序,而不是使用web响应自己的对象并使用2-4,这有意义吗?还是我遗漏了一点 到目前为止,我一直在从一个单独的项目访问webservice,并使用一个新类来提供交互和处理持久性,所以我的项目看起来是这样的Asp.net mvc 在.NET3.5C中处理胖Web服务#,asp.net-mvc,web-services,Asp.net Mvc,Web Services,我正在处理一个肥胖的第三方Web服务,它返回大约3mb的数据用于一个简单的搜索结果,该响应中大约50%的数据是垃圾数据 然后将这些数据重新映射到我自己的结果对象并丢弃响应,这样我就在内存中存储1-2MB用于过滤和排序,而不是使用web响应自己的对象并使用2-4,这有意义吗?还是我遗漏了一点 到目前为止,我一直在从一个单独的项目访问webservice,并使用一个新类来提供交互和处理持久性,所以我的项目看起来是这样的 |- Web (mvc2 proj) |- DAL (database/stor
|- Web (mvc2 proj)
|- DAL (database/storage fluent-nhibernate)
|- SVCGateway (interaction layer + webservice related models)
|- Services
--------------
|- Tests
|- Specs
我试图让应用程序运行得更快,我还需要临时存储结果集,以防客户查看产品并希望返回结果。(服务仅返回500个可能的14K结果)
因此,基本上,我在寻找确认,在将结果推送到我自己的对象中时,我做了正确的事情,或者我违反了一些规则,或者即使有更好的方法来处理它
谢谢尝试使用序列化在内存中存储缩减结果对象。这将对你大有帮助。这确实是提高处理结果速度的唯一方法
我还想看看进程外缓存解决方案,如NCache()和memcached(),以进一步提高您的速度和可扩展性。假设您将在应用程序的生命周期内多次操作生成的数据集,我认为将web服务的结果集映射到您自己的对象非常有意义 除了减少内存占用的明显好处外,您还可以设计自己的数据内部表示,以便针对要对其执行的操作类型进行优化。这样可以节省处理时间和内存使用
我能看到的存储臃肿的第三方响应的唯一情况是,如果您的主要用例涉及用户只查看一次数据。如果用户很少返回到他们以前的搜索,那么您就可以利用原始结果集。这听起来很可疑。如果要在其中获取大量数据,需要避免的是缓存、缓存和其他重复。尽可能快地去除你不需要的东西。我实际上是指缓存去除的对象,而不是完整的响应。uggh,我认为我们的第三方在200k负载下很糟糕。您确定不能限制通过他们的服务返回的结果数吗?为什么一次需要500个结果?我们至少提供了灵活分页的属性。不,它只返回可用的内容,最多返回500个结果。