我使用Web API将数据从MVC-主页传输到af控制台程序,如下所示:
我已经退出了大量数据,只需要7秒钟来序列化数据。 是否有更快的方式来处理数据?
也许是xml或通过SignalR?
我已经查看了ServiceStack以序列化json,这应该更快,但我的数据是层次结构,Newtonsoft使用PreserveReferencesHandling处理得非常好。
任何想法都将受到赞赏。
来自肯尼思的亲切问候
答案 0 :(得分:0)
我决定通过序列化为二进制而不是json来处理这个问题。
它让我从6秒的加载时间降到0.3秒。 我的数据有很多自引用,这对于json序列化来说非常耗时。
现在我用[Serializable]标记了所有对象。
然后我序列化为可以压缩的二进制格式,然后通过API流式传输到我的控制台。
序列化器:
public static byte[] CompressBinary(object value)
{
byte[] result;
BinaryFormatter binaryFormatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
binaryFormatter.Serialize(stream, value);
stream.Position = 0;
result = CompressStream(stream);
}
return result;
}
请告诉我是否有更好的吸烟。