複数のPersistentList属性を持つオブジェクトをロードすると、リスト全体が自動的にロードされますか?または、ZODBはロードする要素のリストにアクセスするまで待機しますか?後者の場合、要素にアクセスするたびにリスト全体をロードするか、リストの一部のみをロードしますか?はZODB PersistentListsが遅れてロードされていますか?
4
A
答えて
4
の中には、リストがpersistent.Persistent
から継承されており、要求に応じてロードされます。
ただし、Persistent
から継承しないプリミティブ型およびクラスは、PersistentListインスタンスと共にメモリにロードされます。リストへの変更がZODBに翻訳されるよう
PersistentListは、レコードのためにコミット、変更された場合self._p_changed
を設定し、その基本的UserList
(及びPersistent
)のサブクラスです。
+1
私は、遅延ロードはPersistentオブジェクトの参照の動作でありPersistentListの動作ではないことを強調することが重要だと思います。 Persistentオブジェクトへの参照とPersistentオブジェクトのオブジェクトグラフを使って、std pythonリストで遅延ロードを取得します。 –
関連する問題
- 1. ZODBマウントポイントが壊れていますか?
- 2. 遅れて遅いTextViewロード
- 3. Laravel 5.2のクエリが遅延ロードされていますか?
- 4. ファイルブラウザのアプリケーションに遅いファイルがロードされています
- 5. キーボードがロードされていないか遅すぎる
- 6. UIDegmentedControlとしてのUINavigationBarタイトルアイテムが遅れてロードされる
- 7. リアブートストラップはロードされていませんがインポートされていますか?
- 8. コピーされたZODBデータベース
- 9. 遅延ロードされたコンポーネントがレンダリングされていない角度4
- 10. リソースはEclipseではロードされていますが、IntelliJではロードされていません
- 11. ページのFancybox 3が遅れてロードされ、クッキーが動作しない
- 12. PHPUnitリスナーがロードされていますが使用されていません
- 13. ページがロードされていません
- 14. フォントがロードされていません
- 15. SoapExtensionがロードされていません
- 16. キャッシュマニフェストがロードされていません
- 17. Javascriptがロードされていません。
- 18. テンプレートファイルがロードされていません
- 19. UITableViewがロードされていません
- 20. javascriptがロードされていません
- 21. モーメントロケールプラグインがロードされていません
- 22. フレックスライブラリがロードされていません
- 23. JVMTIがロードされていません
- 24. QWebviewがロードされていません
- 25. シムアドインがロードされていません
- 26. サブフォームがロードされていません
- 27. カスタムベンダーバンドルネームスペースがロードされていません
- 28. IronPython.Modules.dllがロードされていません
- 29. ブートストラップファイルがロードされていません
- 30. Node.jsでパラメータ化されたモジュールがロードされています
PersistentListコンテンツ項目は、インデックスでアクセスすると読み込まれます。通常のPythonリストは、ZODBで全体として節約されます。 –
Mikko:これは質問に答えるでしょう - あなたは答えがisnteadのコメントとしてそれを追加する気になりますか? – jsbueno
これはもう少し複雑です。 PersistentList自体は遅延読み込みではありませんが、レコードがPersistentから継承されていれば、ZODB *は*です。私の答えを見てください。 –