序列化和反序列化如何在内部工作



我有很多遗留代码,其中json是使用 for 循环手动解析的。这通常需要O(n)时间。我知道json.nettimespace方面会更好,但深入了解它是如何工作的,将有助于我做出明智的决定,是否值得真正努力继续投入时间和人力将所有东西都转移到 json.net。

为了将您的

问题解释为更一般的问题,假设您正在寻找有关为各种场景选择哪种 JSON 序列化实现的建议。

我知道这个问题有三个明显的答案:

  • 牛顿软件 JSON.NET
    • 提供丰富的功能和出色的性能
  • ServiceStack.Text
    • 提供简单性和卓越的性能
  • BCL JsonSerializer
    • 避免了第三方库依赖性,但速度明显变慢

如果您不关心第三方库依赖项,请选择第一个选项,因为它将为您提供性能和功能。如果您不需要大量功能,请评估ServiceStack.Text是否满足您的需求(如果不确定,请使用 JSON.NET)。在任何其他情况下,坚持你所拥有的。

此外,在你知道这个特定区域是性能瓶颈(或以其他方式需要替换,例如因为它是一个维护问题)之前,不要花时间通过替换 JSON 代码来加快代码速度。如果您正在考虑替换代码以获得性能,请隔离一些方法,以使用备用实现或库针对类似方案分析和基准测试当前代码,以避免根据假设做出决定。

最后,了解它的内部工作原理不应该成为您决策过程中的一个因素,除非您特别计划能够修改它的来源(或者需要能够理解它)。

相关内容

  • 没有找到相关文章

最新更新