Iphone nsuserdefaults同步方法会降低应用程序的速度
我在循环中执行计算密集型操作(迭代公式有数百个)。在每个循环中,直接从nsuserdefaults获取值,然后计算并保存回来。我的问题是,每次写入nsuserdefaults时是否应使用-synchronize方法?我认为不使用此方法。我的应用程序运行得更快。使用同步是否会减慢计算速度?否!你不应该。考虑到<代码>同步< /代码> <代码>应用程序将终止 .< /P> < P>不!你不应该。考虑到<代码>同步< /COD> <代码>应用程序将终止 < P>不。理论上,您根本不需要调用它,它将为您完成(它是以周期性间隔自动调用的)。实际上,在Iphone nsuserdefaults同步方法会降低应用程序的速度,iphone,performance,nsuserdefaults,Iphone,Performance,Nsuserdefaults,我在循环中执行计算密集型操作(迭代公式有数百个)。在每个循环中,直接从nsuserdefaults获取值,然后计算并保存回来。我的问题是,每次写入nsuserdefaults时是否应使用-synchronize方法?我认为不使用此方法。我的应用程序运行得更快。使用同步是否会减慢计算速度?否!你不应该。考虑到同步< /代码> 应用程序将终止 .< /P> < P>不!你不应该。考虑到同步< /COD> 应用程序将终止 < P>不。理论上,您根本不需要调用它,它将为您完成(它是以周期性间隔自动调用
应用程序willresignactive:
中这样做是一个好主意。理论上,您根本不需要调用它,它将为您完成(它“定期自动调用”)。实际上,最好在应用程序willresignactive:
中这样做
使用同步是否会降低计算速度
是的,绝对是<代码>同步将当前用户默认值写入磁盘
每次写入nsuserdefaults?时是否应使用-synchronize方法
不,绝对不是。如果有一个长循环,在其中更改用户默认值,则这些值将保存在内存中。这不会打乱你的计算。只有在循环完成后才需要保存到磁盘
同步
通常在以下情况下完成:
同步
通常在以下情况下完成:
通过每次在循环中这样做,您只是不必要地将值写入flash,您可能会立即覆盖它。我的问题是,假设在我的第一个循环中计算了一个值。基于此值,下一个循环计算工作,现在如果系统在循环时间内没有调用synchronize方法。计算是否会出错……如果我在应用程序中调用synchronize,有什么用?将终止???
synchronize
表示写入磁盘。您可以在程序中使用NSUserDefaults
(以及其中的值)的共享实例。认为这只是一本字典。在程序结束时,您将这些值写入磁盘。@debleek63:您应该将该注释添加到您的答案中,这是一个好东西。我的问题是,假设在我的第一个循环中计算了一个值。基于此值,下一个循环计算工作,现在如果系统在循环时间内没有调用synchronize方法。计算是否会出错……如果我在应用程序中调用synchronize,有什么用?将终止???synchronize
表示写入磁盘。您可以在程序中使用NSUserDefaults
(以及其中的值)的共享实例。认为这只是一本字典。在程序结束时,您将这些值写入磁盘。@debleek63:您应该将该注释添加到您的答案中,这是一个好东西。但是如果循环时间小于更新间隔,我的计算会出错吗?不,同步
只更新“磁盘”但是如果循环时间小于更新间隔,我的计算会出错吗?不,同步
只是用您在内存中保存的内容更新“磁盘”。