加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

慎用WebService传递大数据

发布时间:2020-12-17 02:45:46 所属栏目:安全 来源:网络整理
导读:之前开发的某个WebService?中,有个接口从服务器获取约4500条数据的DataSet,每个数据有13列,他们在序列化为Xml文件时该文件大小为2.5m。 随后,在使用过程中,发现该WebService接口很慢,大约需要5~8秒才能返回数据。最初一直怀疑该接口是由于xml文件太大

之前开发的某个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做大数据量传输。如果必须这样,那么就应该在客户端考虑缓存。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读