微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

慎用WebService传递大数据

之前开发的某个WebService 中,有个接口从服务器获取约4500条数据的DataSet,每个数据有13列,他们在序列化为Xml文件时该文件大小为2.5m。

随后,在使用过程中,发现该WebService接口很慢,大约需要5~8秒才能返回数据。最初一直怀疑该接口是由于xml文件太大,由于磁盘IO加上Xml序列化引起的。但一直由于各种原因没有深入分析。

然而今天做的实验数据却在意料之外:当我在服务端使用内存缓存后,发现效果没有任何改变。于是马上改变思路,检验了一下服务端操作的耗时,这时发现2.5M的文件Xml反序列化到一个实体数组中,然后把这个数组转换为一个DataSet,这整个过程经过反复测试只需要120ms~140ms左右!磁盘IO、反序列化、从实体转换为DataSet,这些操作加起来竟然是如此的快。

这样,真正的问题暴露出来了:问题的根源,在于WebService的Soap序列化、Soap反序列化以及网络传输上。

因此,应该尽量避免用WebService做大数据量传输。如果必须这样,那么就应该在客户端考虑缓存。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐