什麼是渴望加載?
回答
有三個層次:
- 預先加載:當問及你所做的一切。經典的例子是當你乘兩個矩陣。你做所有的計算。這是急切的加載;
- 延遲加載:您只需要時進行計算。在前面的例子中,除非訪問結果矩陣的一個元素,否則不做任何計算;和
- 過分渴望加載:這是您嘗試和預測用戶將要求和預加載它的地方。
我希望在你看到的上下文中有意義。
讓我給你一個「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. Laravel渴望模型加載
- 2. Laravel渴望加載和whereHas
- 3. 渴望加載to_json包括
- 4. ActiveRecord(NHibernate)渴望加載Bug?
- 5. Laravel渴望加載4表
- 6. 懶惰,渴望,顯式加載意味着什麼?
- 7. 爲什麼使用懶惰/渴望加載數據庫級別
- 8. Eloquent渴望加載$追加屬性
- 9. Rails渴望加載CanCan角色
- 10. NHibernate渴望加載需要在這裏?
- 11. 分頁與渴望加載Laravel 5.4
- 12. 渴望加載一對多關係
- 13. Rails 3 - 渴望加載條件
- 14. 渴望加載追蹤項目?
- 15. PNG紋理不加載在HTC渴望
- 16. Paginate渴望加載的關係
- 17. 如何顯示渴望加載的值
- 18. Rails:渴望加載as_json包括
- 19. Mongoid:渴望加載計數has_many association
- 20. 渴望加載與NHibernate的子集合
- 21. Linq with Entity Framework渴望加載
- 22. 渴望加載祖先樹多葉
- 23. Hibernate的延遲加載,渴望負荷
- 24. Laravel:渴望加載3「關係」
- 25. Laravel渴望加載嵌套或條件
- 26. 渴望加載不工作laravel 5.3
- 27. HIbernate和渴望加載集合
- 28. 級聯渴望加載問題
- 29. Nhibernate - 傳呼和渴望加載實體
- 30. 渴望加載外活動記錄
雖然你摔過通過超越的具體問題;這仍然是一個很好的答案。它簡短並且舉例。 – Phil 2011-03-05 17:22:26
謝謝..很好的回答:) – Orlando 2012-05-08 14:27:01