C# 序列化占用了太多的时间

C# 序列化占用了太多的时间,c#,.net,serialization,deserialization,binaryformatter,C#,.net,Serialization,Deserialization,Binaryformatter,下面是根据对象类型进行序列化所需的大约3到8秒的代码。我想将这个结果存储到Redis中进行缓存。但这项行动花费的时间太长了。反序列化也是如此 public byte[]序列化对象(object objectToSerialize) { 尝试 { //若要序列化的对象为null,则返回null if(objectToSerialize==null) 返回null; 字节[]结果; //创建内存流并将其用于序列化对象 使用(var ms=new MemoryStream()) { 使用(var zs

下面是根据对象类型进行序列化所需的大约3到8秒的代码。我想将这个结果存储到Redis中进行缓存。但这项行动花费的时间太长了。反序列化也是如此

public byte[]序列化对象(object objectToSerialize)
{
尝试
{
//若要序列化的对象为null,则返回null
if(objectToSerialize==null)
返回null;
字节[]结果;
//创建内存流并将其用于序列化对象
使用(var ms=new MemoryStream())
{
使用(var zs=new GZipStream(ms,CompressionMode.Compress,true))
{
var bf=新的二进制格式化程序();
序列化(zs,objectToSerialize);
}
结果=ToArray女士();
}
返回结果;
}
捕获(例外情况除外)
{
//一些代码
返回null;
}
}

更新:我如何尝试序列化
数据表

使用(var client=m_oRedisClientsManager.GetClient()){
//将数据表序列化为字节
byteCachedDatatable=m_oSerializer.SerializedDataTable(oCacheObject);
//向redis添加序列化字节并更新过期时间
Set(sCacheKey,bytecachedatatable,newtimespan(0,iExpiryTimeInMins,0));
}
公共字节[]序列化数据表(数据表数据表){
if(dataTable==null)返回null;
字节[]结果;
使用(var memoryStream=new memoryStream()){
使用(var deflateStream=新的deflateStream(memoryStream,CompressionMode.Compress)){
WriteXml(deflateStream,XmlWriteMode.WriteSchema);
deflateStream.Flush();
deflateStream.Close();
结果=memoryStream.ToArray();
}
}
返回结果;
}

任何指针都会有帮助。

对象有多大?…序列化流有多大?序列化流几乎是6000字节的数组。有更新吗??如果您的问题提到了用于序列化的机制以及您尝试序列化的对象的示例结构,那么这将非常有用。