WCF数据传输性能问题。。。。。

[复制链接]
查看11 | 回复9 | 2021-1-27 05:28:31 | 显示全部楼层 |阅读模式
目前正在解决项目的性能问题,寻求大牛帮助!!!!!!
项目采用MVC框架,向WCF请求数据
web端的log:取数据用了13秒
publicvoidinitCreditCenterDCCompanyCache()
{
Debug.WriteLine(DateTime.Now);//2014-10-2214:57:01
//CallWCF
Debug.WriteLine(DateTime.Now);//2014-10-2214:57:14

WCF端的log:取数据用了3秒
publicvoidinitCreditCenterDCCompanyCache()
{
Debug.WriteLine(DateTime.Now);//2014-10-2214:57:01
//GetdatafromDB
Debug.WriteLine(DateTime.Now);//2014-10-2214:57:04

多余的10秒钟应该消耗在从WCF端传输到WEB端了吗?有没有办法优化?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
看下你返回的包,是不是可以精简数据。另外WCF中有没有重写数据格式化器,如果是json数据的话,是否有对象的循环嵌套。还有你接收数据的地方,是怎么反序列化的
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
1.使用轻量级的普通httpGet或者Post方式访问,不要使用WCF。
2.除非万不得已,不要一次下载过大的内容(例如超过1000K的内容),而应该修改业务协议、分开数据页下载。
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
引用2楼jetable的回复:看下你返回的包,是不是可以精简数据。另外WCF中有没有重写数据格式化器,如果是json数据的话,是否有对象的循环嵌套。还有你接收数据的地方,是怎么反序列化的
返回的是一个DataSet数据集
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
引用3楼sp1234的回复:1.使用轻量级的普通httpGet或者Post方式访问,不要使用WCF。
2.除非万不得已,不要一次下载过大的内容(例如超过1000K的内容),而应该修改业务协议、分开数据页下载。

我们数据层都用wcf分开了,用的是http协议。分页也不合适,我们把数据全取出来放在web端的cache中,然后需要刷新cache时再调用wcf
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
试试使用fastCSharp的TCP调用取代WCF,试试将参数DataSet转换成fastCSharp.data.dataSet。
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
这差的也太多了,你的返回结果是不是太大了。
时间花费到网络传输和封soap包上面了。
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
引用7楼findcaiyzh的回复:这差的也太多了,你的返回结果是不是太大了。
时间花费到网络传输和封soap包上面了。

大概3万条数据
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
引用8楼secdx_maomao的回复:Quote: 引用7楼findcaiyzh的回复:
这差的也太多了,你的返回结果是不是太大了。
时间花费到网络传输和封soap包上面了。

大概3万条数据

这个有点太多了吧,最好分下页吧。Serialize的时候会慢,如果datasize大的话,传输也会比较慢。
回复

使用道具 举报

千问 | 2021-1-27 05:28:31 | 显示全部楼层
如果Web网站和WCF服务是在一台机器上还可以尝试修改netNamedPipeBinding绑定或者局域网采用netTcpBinding来优化,多做几次试验就能找到慢的本质,当然了3万条数据确实也太多了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行