最近在看autofac的原始碼。
autofac據說是.net中最快的ioc框架,具體沒有實驗,於是看看autofac具體是怎樣例項化實體。
如上圖所示,autofac使用的是表示式樹來建立實體。
expression tree建立實體的效能比activator.createinstance要高。
網上有人做過測試,這裡我將鏈結貼在此activator.createinstance與expressiontree建立實體效能對比
我們再來看看,autofac中建構函式注入是如何實現的。
看下面這張
image.png
這段**是生成實體前,先根據實體型別獲取構造函式引數,並嘗試獲取引數的值。那引數的值是怎麼獲取的呢。再看下面這張圖:
這個方法,是根據引數型別,到註冊的元件集合中獲取型別相同的實體。最終還是用上面的表示式樹,將引數傳入實體中。
未完待續...
讀Muduo原始碼筆記 1
物件銷毀時出現的競態條件 執行緒安全的類 簡單的執行緒安全類 class counter int value const int getandincrease private int value mutable mutexlock mutex int counter value const int ...
讀vue原始碼筆記 1
shared util.js 1.hasown var hasownproperty object.prototype.hasownproperty function hasown obj,key extend export function extend to object,from object...
筆記4 讀原始碼
好吧,截圖都沒了。就這把,內容很具體,跟著操作完全沒問題。系統設定中可看到關於手機容量的資訊,我們只要找到setting的原始碼,就能找到android系統是怎麼做到的。注意adt安裝目錄下的sdk sources目錄裡並不是android系統的原始碼,而是用到的jar包的原始碼。原始碼資料夾 bu...