.NET 4.6

时间:2015-08-28 12:06:38

标签: c# .net

我最近将我的机器上的.NET框架升级到.NET 4.6,并注意到文件中对象的二进制(反)序列化的时间差异很大。

例如,我有一个10MB的文件,在我的机器上使用.NET 4.5.2在~2秒内反序列化。升级到.NET 4.6后,它需要50秒(!) - 实际时间非常随机:有时需要2秒,有时50秒(相同的文件,相同的程序,甚至相同的过程)。

有没有其他人注意到类似的行为,可能会找到针对此问题的解决方法(或解决方案)?

2 个答案:

答案 0 :(得分:4)

没有什么理由认为它与二进制序列化有关,这是非常确定的。鉴于随机行为以及您使用10兆字节文件大量使用垃圾收集器的可能性,一个非常好的候选者是this bug。相当糟糕。

如果你有一个好的repro,那么使用新的诊断工具来查看任何慢速#1系列。并修改GCSettings.LatencyMode,如果它有影响,那么你知道它是根本原因。应尽快解决。

答案 1 :(得分:0)

在反序列化对象时遇到与BinaryFormatter完全相同的问题。我们观察到这是由于框架4.6中的一个错误,它在框架4.6.1中得到了解决。找到更改列表here。令人讨厌的错误是提高了并行二进制文件反序列化的性能[141896]