又是一个关于 wcf 服务压缩的问题。我正在使用 netnamedpipe 绑定将一些实体对象发送到我的调用应用程序。我知道,这是一个坏主意,但这是我的客户希望它实施的方式。
所以现在,我必须通过 netnamedpipe 发送大约 45000 个数据集(实体对象)。这真的很慢。我已经实现了一个类,它在发送之前将数据对象压缩为字节 [],但是 45000 组仍然需要大约 45 秒来发送/接收。
我是这样压缩的:
public static byte[] Compress<T>(T data)
{
byte[] result = null;
using (var memory = new MemoryStream())
{
using (var zip = new DeflateStream(memory, CompressionMode.Compress, true))
{
var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(zip, data);
}
result = memory.ToArray();
}
return result;
}
有没有办法改善它?45秒太多了:(我认为,主要原因可能是我的实体对象的序列化..但是如何加快速度?