c# - 如何提高反序列化速度?

标签 c# performance serialization binaryformatter

使用 BinaryFormatter 进行序列化/反序列化,生成的序列化文件大小约为 80MB。反序列化需要几分钟。我该如何改进?这是反序列化代码:

    public static Universe DeserializeFromFile(string filepath)
    {
        Universe universe = null;

        FileStream fs = new FileStream(filepath, FileMode.Open);

        BinaryFormatter bf = new BinaryFormatter();
        try
        {
            universe = (Universe)bf.Deserialize(fs);
        }
        catch (SerializationException e)
        {
            Console.WriteLine("Failed to deserialize. Reason: " + e.Message);
            throw;
        }
        finally
        {
            fs.Close();
        }

        return universe;
    }

也许在反序列化或使用其他序列化技术之前全部读取到内存?

最佳答案

试试 UnsafeDeserialize .据说可以提高速度。

关于c# - 如何提高反序列化速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1620663/

相关文章:

c# - 序列化用于 WCF 服务的 CLR 对象时出错

c# - 解析自定义过滤器语法的最佳方法

java - 如何从 Jackson ObjectMapper 中排除空对象?

javascript - 如果函数被多次调用,在函数中缓存选择器是否性能更高?

c++ - 在 C++ 中使用序列化模拟对象进行单元测试

java - 具有自定义注释的字段的 Gson 自定义序列化

c# - 更新 ZipArchive 中的文件

c# - 在 .NET Standard 中检索 Type 的自定义属性

mysql - 我应该用什么代替 IN?

sql-server - BETWEEN 运算符与 >= AND <= : Is there a performance difference?