小编Lar*_*lie的帖子

为什么复制流然后使用BinaryFormatter反序列化比仅反序列化更快

此代码大约需要8秒,其中包含来自数据库中blob的大约65K的流

private string[] GetArray(Stream stream)
{
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    object result = binaryFormatter.Deserialize(stream);
    return (string[])result;
}
Run Code Online (Sandbox Code Playgroud)

这段代码需要几毫秒:

private string[] GetArray(Stream stream)
{
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    MemoryStream memoryStream = new MemoryStream();
    Copy(stream, memoryStream);
    memoryStream.Position = 0;
    object result = binaryFormatter.Deserialize(memoryStream);
    return (string[])result;
}
Run Code Online (Sandbox Code Playgroud)

为什么?

.net c# serialization stream deserialization

9
推荐指数
1
解决办法
1123
查看次数

标签 统计

.net ×1

c# ×1

deserialization ×1

serialization ×1

stream ×1