序列化花费了太多时间

这里的序列化需要大约3到8秒的代码取决于对象类型。 我想将此结果存储到Redis中进行缓存。 但这项行动耗时太长。 对于反序列化也是如此。

public byte[] SerializeObject(object objectToSerialize) { try { //If object to serialize is null then return null if (objectToSerialize == null) return null; byte[] result; //Create memory stream and use it for Serializing object using (var ms = new MemoryStream()) { using (var zs = new GZipStream(ms, CompressionMode.Compress, true)) { var bf = new BinaryFormatter(); bf.Serialize(zs, objectToSerialize); } result = ms.ToArray(); } return result; } catch (Exception ex) { //Some code return null; } } 

更新:我如何尝试序列化DataTable

 using(var client = m_oRedisClientsManager.GetClient()) { //Serialize DataTable to byte byteCachedDatatable = m_oSerializer.SerializeDataTable(oCacheObject); //add Serialized bytes to redis and update expiration time client.Set(sCacheKey, byteCachedDatatable, new TimeSpan(0, iExpiryTimeInMins, 0)); } public byte[] SerializeDataTable(DataTable dataTable) { if (dataTable == null) return null; byte[] result; using(var memoryStream = new MemoryStream()) { using(var deflateStream = new DeflateStream(memoryStream, CompressionMode.Compress)) { dataTable.WriteXml(deflateStream, XmlWriteMode.WriteSchema); deflateStream.Flush(); deflateStream.Close(); result = memoryStream.ToArray(); } } return result; } 

任何指针都会有所帮助。