gpt4 book ai didi

c# - WP7 上的 JSON 序列化性能问题

转载 作者:太空狗 更新时间:2023-10-29 23:03:19 25 4
gpt4 key购买 nike

我有一个 .JSON 文件,大约是1.5MB 大小,包含大约 1500 个 JSON 对象,我想在我的应用程序启动时将它们转换为域对象。

目前,我在手机上(而不是在我的开发 PC 上)的进程大约需要 23 秒,这对我来说太慢了,并且迫使我将对象列表写入 ApplicationSettings,这样我就不会每次加载应用程序时都必须执行此操作(刚开始时),但即使这样也需要 15 多秒的写入时间和 16 秒的读取时间,所有这些都还不够好。

我没有很多序列化经验,我真的不知道完成它的最快方法。

目前,我正在使用 System.Runtime.Serialization 命名空间和 DataContractDataMember 方法。

关于这种类型的数据加载的性能有什么想法吗?

最佳答案

我找到了 Json.NET库比标准 json 序列化程序具有更高的性能和更好的选项。

我在我的应用程序中遇到的一个性能问题是我的域对象使用代码实现了 INotifyPropertyChanged 以支持将事件分派(dispatch)回 UI 线程。由于反序列化代码填充了这些属性,我正在做很多不需要在那里的线程编码。在反序列化期间切断通知显着提高了性能。

更新:我使用的是 Caliburn Micro,它在 PropertyChangedBase 上有一个属性可以关闭属性更改通知。然后我添加了以下内容:

[OnDeserializing]
public void OnDeserializing(StreamingContext context)
{
IsNotifying = false;
}

[OnDeserialized]
public void OnDeserialized(StreamingContext context)
{
IsNotifying = true;
}

关于c# - WP7 上的 JSON 序列化性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com