1

バックグラウンド

  • 計算された値が一時属性に格納されています。
  • アプリが起動するたびに、トランジェントを更新する必要があります。
  • 起動時間が非常に遅い (つまり、10 ~ 15 秒)
  • インスツルメンツは、更新が非常に高価であることを確認しています。

質問

計算された値を永続属性に格納しても問題ありませんか?

Martin Brugger の Dependent Propertiesを使用して、計算された値を最新の状態に保ちます。

詳しくは

私の計算値は、何千ものオブジェクトの期間です。

Name                       Duration
Users                      70s            
    Proposal.doc           35s   
      12:32-12:32          5s   
      13:11-13:11          30s   
    Proposal2.doc          35s   
      14:32-14:32          15s   
      15:11-15:11          20s   
    ...thousands more objects...

私が試したこと

  • プリフェッチを使用して、発生する障害の数を最小限に抑えましたが、setReturnsObjectsAsFaults:NO大量のメモリを使用し、まだ時間がかかります。

  • 一時的な更新コードを、私が知っている限り効率的にしました。

  • バックグラウンド スレッドで取得してプログレス バーを使用できることはわかっていますが、ユーザーがまったく待機する必要がないようにしたいと考えています。

4

1 に答える 1

2

質問を完全に理解しているかどうかはわかりませんが、あなたが尋ねていると思うことに対する簡単な答えは「もちろん」です。:-)

一時的でリアルタイムに計算された「currentTotalDuration」値と「cachedTotalDuration」属性を持つことには何の問題もありません。「currentTotalDuration」が更新されたら、それを「cachedTotalDuration」にスローして完了です。更新が必要な場合にのみ使用される「ライブで計算された」一時的な値と一緒に永続的なキャッシュ属性を持つことは、私には完全に合理的に思えます。

Martin Brugger の Dependent Properties には詳しくありませんが、大変な作業のほとんどは既に行われているようです。

あなたが実際に尋ねた質問に答えていただければ幸いです。:-D

于 2010-11-22T14:47:34.873 に答える