什麼是渴望加載?
回答
有三個層次:
- 預先加載:當問及你所做的一切。經典的例子是當你乘兩個矩陣。你做所有的計算。這是急切的加載;
- 延遲加載:您只需要時進行計算。在前面的例子中,除非訪問結果矩陣的一個元素,否則不做任何計算;和
- 過分渴望加載:這是您嘗試和預測用戶將要求和預加載它的地方。
我希望在你看到的上下文中有意義。
讓我給你一個「Webby」的例子。
想象一個包含翻轉圖像的菜單項或導航頁面。有三種方式將圖像加載可在此頁上運行:
- 加載您呈現頁面(渴望)之前,需要每一個圖像;
- 在頁面加載時僅加載顯示的圖像並在需要時加載其他圖像(lazy);和
- 僅加載頁面加載時顯示的圖像。在頁面加載之後,在背景中預加載其他圖像以防您需要它們(over-eager)。
有意義嗎?
這與lazy loading相反,它推遲對象的初始化,直到需要該對象。急切加載在創建時初始化對象。
我可以補充說,這些術語通常用在ORM(對象關係映射器)的上下文中,在這裏你將對象映射到關係數據庫中的表格。 – Loki 2009-08-19 11:44:57
如果你想象你有一個叫人的對象,他有一個名字,一個出生日期和一些不太關鍵的細節,可以說最喜歡的顏色,最喜歡的電視節目。
爲了延遲加載這個類,你可能會從數據庫讀取所有核心更頻繁使用的細節(比如說出生的名字和出生日期),並且只有在需要/需要的時候纔會讀取較少使用的細節,渴望加載是相反的,即你在同一時間加載所有細節。
懶加載的典型應用該類超支往往citied爲effiecency,但如果對象是不是複雜或efficency不關心預先加載可用於
當你考慮它時,延遲加載更多的是關於每個函數調用時更少的內存和更多的計算,而當創建類時急切的加載會使用更多的內存和更多的計算,而調用函數時會減少計算量。 – Loki 2009-08-19 11:49:25
- 1. 這是渴望加載做我認爲它應該做什麼?
- 2. 控制什麼是懶惰(或渴望)加載
- 3. Laravel 4渴望加載
- 4. Laravel嵌套渴望加載
- 5. Laravel渴望加載4表
- 6. 渴望加載has_many通過
- 7. 渴望加載to_json包括
- 8. Laravel渴望加載和whereHas
- 9. ActiveRecord(NHibernate)渴望加載Bug?
- 10. Laravel 4.1渴望加載
- 11. Laravel渴望模型加載
- 12. 爲什麼使用懶惰/渴望加載數據庫級別
- 13. 懶惰,渴望,顯式加載意味着什麼?
- 14. Eloquent渴望加載$追加屬性
- 15. PNG紋理不加載在HTC渴望
- 16. ActiveJDBC渴望加載多態父母
- 17. Nhibernate - 傳呼和渴望加載實體
- 18. 渴望加載一對多關係
- 19. Mongoid:渴望加載計數has_many association
- 20. Laravel渴望加載嵌套或條件
- 21. Paginate渴望加載的關係
- 22. 級聯渴望加載問題
- 23. 分頁與渴望加載Laravel 5.4
- 24. JPA渴望加載FetchType.LAZY子集合
- 25. HIbernate和渴望加載集合
- 26. NHibernate渴望加載需要在這裏?
- 27. Linq with Entity Framework渴望加載
- 28. 如何顯示渴望加載的值
- 29. Hibernate的延遲加載,渴望負荷
- 30. 雄辯 - 渴望加載關係
雖然你摔過通過超越的具體問題;這仍然是一個很好的答案。它簡短並且舉例。 – Phil 2011-03-05 17:22:26
謝謝..很好的回答:) – Orlando 2012-05-08 14:27:01