开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
作者:C/S框架网  发布日期:2013-08-19 09:05:06
  开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告


开发平台在BLL与DAL层中间嵌套Web服务层, 双向通信通道:

UI<----->BLL<----->Web服务层<----->DAL<----->DB


前台提交数据到Web服务层或者从后台获取数据到前台视图显示,比如查询功能都需要处理大数据集。
C/S架构下建议压缩数据,节省带宽,下面是测试报告



贴图图片


测试代码:



C# Code:

static void Main(string[] args)
{
   
   string xml = @"E:\XQ-ERP\测试数据\nwind.xml";
   FileStream fs = File.OpenRead(xml);
   long a = fs.Length;//原始数据大小
   fs.Close();
   
   DataSet ds = new DataSet();
   ds.ReadXml(xml);
   byte[] bs = ZipTools.CompressionDataSet(ds);//压缩DataSet-->byte[]
   long b = bs.Length;//压缩后大小
   
   Console.WriteLine("未压缩数据的字节数:" a.ToString());
   Console.WriteLine("压缩后数据字节数:" b.ToString());
   Console.WriteLine("压缩后比原数据要少:" (a - b).ToString());
   
   double rate = ((a - b) / (a * 1.00)) * 100;
   rate = Math.Round(rate, 2);
   Console.WriteLine("压缩比例: " rate.ToString() "%");
   
   //测试压缩后的数据能不能还原
   string xml1 = @"E:\XQ-ERP\测试数据\nwind_1.xml";
   DataSet ds1 = ZipTools.DecompressionDataSet(bs);//还原数据
   ds1.WriteXml(xml1, XmlWriteMode.WriteSchema);//一定要写入DataSet表结构元数据
   
   FileStream fs1 = File.OpenRead(xml1);
   long aa = fs1.Length;//原始数据大小
   fs1.Close();
   
   Console.WriteLine("还原后的数据字节数:" aa.ToString());
   Console.ReadLine();
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898




两个文件对比:

还原压缩后的数据略有差异,是XML Metadata(元数据)版本不一致造成的,不影响实际数据。



贴图图片



ZipTools类在平台的Common模块中。




上一篇 下一篇