[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • .NET Core 底層入門
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    489-710
    【優惠價】
    306-444
    【作者】 老農、劉浩楊 
    【所屬類別】 圖書  計算機/網絡  程序設計  其他 
    【出版社】北京航空航天大學出版社 
    【ISBN】9787512431959
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787512431959
    作者:老農、劉浩楊

    出版社:北京航空航天大學出版社
    出版時間:2020年01月 

        
        
    "

    編輯推薦

    作者提供大量源碼鏈接以及解釋數據結構和處理流程的圖標。

     
    內容簡介

    本書講解了 .NET Core公共語言運行時的底層實現,從介紹MSIL和x86彙編語言開始,到講解異常、多線程、GC以及JIT編譯器的實現原理與實現細節。本書包含了大量圖表讓讀者可以更容易了解其中的內容,同時涉及到 .NET Core底層實現的部分還給出了對應的源代碼鏈接,讓讀者可以參考源代碼有更深入的理解。此外,本書還有相關提問用的倉庫和QQ 群便於讀者交流,詳見序言。


    本書主要面向有一年以上 .NET (C#)開發經驗的開發者,其他程序語言的開發者也可以閱讀本書來比較 .NET Core與其他語言的運行時之間有哪些共同點和不同點,本書的知識可以為讀者在編寫高性能應用或底層應用時提供有力的支持。

    作者簡介

    老農,開源MVC框架ZKWeb的作者,對C 和x86彙編有多年研究,熟悉逆向分析和性能優化。


    劉浩楊,高級軟件工程師,關注應用性能管理(APM)和高級語言虛擬機實現,熟悉Web應用性能優化,對MSIL和CLR有深入了解。開源愛好者,開源AOP框架AspectCore作者,Apache SkyWalking APM的.NET Core探針作者。

    目錄
    第1章公共語言運行時概述1
    1.1.1.NET框架簡介1
    1.1.2公共語言運行時中的各個組成部分3
    1.1.3名稱規範5
    第2章MSIL入門7
    第1節逆向 .NET程序到IL7
    2.1.1ildasm7
    2.1.2使用ILSpy10
    2.1.3dnSpy10
    第2節基礎語法11
    2.2.1IL語法格式11
    2.2.2IL指令格式17
    2.2.3評價堆棧18
    2.2.4常用指令19

    第1章公共語言運行時概述1


    1.1.1.NET框架簡介1


    1.1.2公共語言運行時中的各個組成部分3


    1.1.3名稱規範5


    第2章MSIL入門7


    第1節逆向 .NET程序到IL7


    2.1.1ildasm7


    2.1.2使用ILSpy10


    2.1.3dnSpy10


    第2節基礎語法11


    2.2.1IL語法格式11


    2.2.2IL指令格式17


    2.2.3評價堆棧18


    2.2.4常用指令19


    2.2.5常見的C#代碼與IL代碼的對比21


    第3節流程控制26


    2.3.1IL流程控制26


    2.3.2常見的流程控制C#代碼與IL代碼對比28


    第3章x86彙編入門37


    第1節彙編與機器碼37


    3.1.1理解彙編語言與機器碼37


    3.1.2RISC與CISC42


    3.1.3流水線42


    第2節內存44


    3.2.1位與字節44


    3.2.2負數的表現46


    3.2.3小端與大端47


    3.2.4內存地址47


    3.2.5虛擬內存48


    3.2.6了解虛擬內存的實現50


    第3節寄存器50


    3.3.1通用寄存器50


    3.3.2程序計數器52


    3.3.3標志寄存器52


    第4節基礎指令55


    3.4.1彙編指令記法55


    3.4.2彙編指令格式56


    3.4.3彙編指令簡寫57


    3.4.4基礎彙編指令58


    3.4.5更多指令68


    3.4.6機器碼的編碼方式68


    第5節流程控制69


    3.5.1流程控制實現69


    3.5.2比較指令70


    3.5.3跳轉指令73


    3.5.4其他流程控制77


    3.5.5分支預測79


    第6節函數調用82


    3.6.1棧結構82


    3.6.2函數調用85


    3.6.3enter與leave指令89


    3.6.4調用規範89


    第7節繫統調用91


    3.7.1繫統調用簡介91


    3.7.2在x86上發起繫統調用(軟中斷)92


    3.7.3在x86上發起繫統調用(sysenter)93


    3.7.4在x8664上發起繫統調用(syscall)94


    第8節內存屏障95


    3.8.1亂序執行95


    3.8.2內存屏障簡介96


    3.8.3雙檢鎖97


    第4章編譯與調試CoreCLR100


    第1節在Windows上編譯CoreCLR100


    4.1.1準備編譯環境100


    4.1.2下載CoreCLR源代碼101


    4.1.3編譯CoreCLR102


    4.1.4使用編譯出來的CoreCLR103


    4.1.5的編譯文檔103


    第2節在Windows上調試CoreCLR104


    4.2.1使用Visual Studio調試CoreCLR104


    4.2.2使用WinDbg調試CoreCLR105


    4.2.3在WinDbg中使用SOS擴展109


    4.2.4更方便地調試托管方法對應的彙編代碼113


    第3節在Linux上編譯CoreCLR113


    第4節在Linux上調試CoreCLR116


    4.4.1使用LLDB調試CoreCLR116


    4.4.2在LLDB中使用SOS擴展119


    第5章異常處理實現126


    第1節異常處理簡介126


    5.1.1通過返回值報告錯誤與通過異常報告錯誤的區別126


    5.1.2.NET中的異常處理129


    第2節用戶異常的觸發132


    5.2.1用戶異常132


    5.2.2通過throw關鍵詞拋出異常133


    5.2.3調用 .NET運行時內部函數拋出異常135


    5.2.4JIT編譯時自動插入拋出異常的代碼135


    5.2.5CoreCLR中的相關代碼137


    第3節硬件異常的觸發137


    5.3.1硬件異常137


    5.3.2訪問null對像的字段時拋出異常138


    5.3.3調用null對像的方法時拋出異常142


    5.3.4對整數進行零除時的處理144


    5.3.5CoreCLR中的相關代碼146


    第4節異常處理實現146


    5.4.1異常處理的過程146


    5.4.2捕捉異常並獲取拋出異常的位置147


    5.4.3通過調用鏈跟蹤獲取拋出異常的函數與所有調用來源148


    5.4.4獲數據中的異常處理表150


    5.4.5枚舉異常處理表調用對應的finally塊與catch塊151


    5.4.6重新拋出異常的處理151


    5.4.7CoreCLR中的相關代碼153


    第5節異常處理對性能的影響154


    第6章多線程實現158


    第1節原生線程158


    6.1.1原生線程簡介158


    6.1.2上下文切換159


    6.1.3線程調度161


    6.1.4棧空間161


    第2節托管線程162


    6.2.1托管線程簡介162


    6.2.2托管線程對像163


    6.2.3創建托管線程的例子163


    6.2.4前臺線程與後臺線程164


    6.2.5CoreCLR中的相關代碼166


    第3節搶占模式與合作模式166


    6.3.1切換模式的實現167


    6.3.2CoreCLR中的相關代碼169


    第4節線程本地儲存169


    6.4.1ThreadStatic Attribute屬性的實現171


    6.4.2ThreadLocal類的實現172


    6.4.3CoreCLR中的相關代碼175


    第5節原子操作175


    6.5.1原子操作簡介175


    6.5.2.NET中的原子操作179


    6.5.3無鎖算法182


    6.5.4CoreCLR中的相關代碼183


    第6節自旋鎖184


    6.6.1線程鎖184


    6.6.2使用Thread.SpinWait實現自旋鎖185


    6.6.3使用System.Threading.SpinWait代替187


    6.6.4使用System.Threading.SpinLock實現自旋鎖188


    6.6.5Thread.Sleep(0)與Thread.Yield的區別189


    6.6.6使用pause指令的另一個原因190


    6.6.7CoreCLR中的相關代碼190


    第7節互斥鎖191


    第8節混合鎖與lock語句197


    6.8.1線程中止安全200


    6.8.2CoreCLR中的相關代碼201


    第9節信號量204


    6.9.1輕量信號量206


    6.9.2通過信號量實現生產者—消費者模式206


    6.9.3通過Monitor類實現生產者—消費者模式208


    6.9.4CoreCLR中的相關代碼210


    第10節讀寫鎖213


    第11節異步操作216


    6.11.1阻塞操作216


    6.11.2事件循環機制217


    6.11.3異步編程模型219


    6.11.4異步編程模型的實現原理221


    6.11.5任務並行庫224


    6.11.6任務並行庫的實現原理226


    6.11.7ValueTask229


    6.11.8async與await關鍵字的例子230


    6.11.9async與await關鍵字的實現原理231


    6.11.10堆積的協程與無堆的協程239


    6.11.11CoreCLR中的相關代碼239


    第12節執行上下文242


    6.12.1異步本地變量與執行上下文242


    6.12.2CoreCLR中的相關代碼247


    第13節同步上下文248


    6.13.1同步上下文的使用例子(基於WinForm)249


    6.13.2自定義同步上下文實現252


    6.13.3CoreCLR中的相關代碼258


    第7章GC垃圾回收實現260


    第1節GC簡介260


    7.1.1棧空間與堆空間260


    7.1.2值類型與引用類型261


    7.1.3.NET中的GC263


    7.1.4垃圾回收VS引用計數271


    第2節對像內存結構271


    7.2.1值類型對像的內存結構271


    7.2.2引用類型對像的內存結構273


    7.2.3存活標記與固定標記276


    7.2.4裝箱與拆箱277


    7.2.5CoreCLR中的相關代碼278


    第3節托管堆結構280


    7.3.1.NET程序的內存結構280


    7.3.2托管堆與堆段282


    7.3.3分配上下文284


    7.3.4分代的實現286


    7.3.5自由對像列表287


    7.3.6跨代引用記錄289


    7.3.7析構對像列表與析構隊列291


    7.3.8CoreCLR中的相關代碼291


    第4節分配對像流程293


    7.4.1new關鍵字生成的代碼293


    7.4.2從托管堆分配空間的內部函數297


    7.4.3分配小對像的流程299


    7.4.4分配大對像的流程299


    7.4.5記錄包含析構函數的對像到析構對像列表302


    7.4.6CoreCLR中的相關代碼302


    第5節垃圾回收流程303


    7.5.1GC的觸發303


    7.5.2執行GC的線程306


    7.5.3GC的總體流程307


    7.5.4重新決定目標代309


    7.5.5判斷是否應該執行後臺GC311


    7.5.6CoreCLR中的相關代碼312


    第6節標記階段314


    7.6.1獲取根對像314


    7.6.2遞歸掃描根對像並設置存活標記315


    7.6.3通過卡片表掃描跨代引用並設置存活標記318


    7.6.4枚舉強引用GC句柄並設置存活標記318


    7.6.5枚舉固定GC句柄並設置固定標記319


    7.6.6枚舉弱引用GC句柄並清空不再存活對像引用319


    7.6.7掃描析構對像列表並添加不再存活對像到析構隊列319


    7.6.8枚舉跟蹤復活弱引用GC句柄並清空不再存活對像引用320


    7.6.9決定是否啟用升代320


    7.6.10CoreCLR中的相關代碼321


    第7節計劃階段323


    7.7.1構建Plug樹323


    7.7.2構建Brick表324


    7.7.3模擬壓縮325


    7.7.4判斷是否執行壓縮與新建短暫堆段327


    7.7.5CoreCLR中的相關代碼328


    第8節重定位階段328


    7.8.1修改對像引用地址328


    7.8.2CoreCLR中的相關代碼330


    第9節壓縮階段330


    7.9.1復制對像值330


    7.9.2結束GC332


    7.9.3CoreCLR中的相關代碼333


    第10節清掃階段333


    7.10.1創建自由對像並加到自由列表333


    7.10.2結束GC334


    7.10.3CoreCLR中的相關代碼334


    第11節後臺GC335


    7.11.1後臺標記階段335


    7.11.2後臺清掃階段336


    7.11.3CoreCLR中的相關代碼337


    第12節調整GC行為338


    7.12.1設置GC模式338


    7.12.2設置延遲模式339


    7.12.3設置延遲等級340


    7.12.4開啟無GC區域341


    7.12.5開啟大對像堆壓縮342


    7.12.6保留堆段空間地址342


    7.12.7更多選項(針對 .NET Core)343


    第13節獲取GC信息344


    7.13.1獲取GC執行次數344


    7.13.2注冊完整GC觸發前的通知345


    7.13.3在Windows繫統上使用ETW捕捉GC事件347


    7.13.4在Linux繫統上使用Lttng捕捉GC事件350


    7.13.5使用EventListener捕捉GC事件351


    第8章JIT編譯器實現354


    第1節JIT簡介354


    8.1.1JIT編譯器354


    8.1.2.NET中的RyuJIT編譯器356


    8.1.3在Visual Studio中查看生成的彙編代碼356


    8.1.4使用JITDump日志查看JIT編譯流程與生成的彙編代碼357


    第2節JIT編譯流程358


    8.2.1JIT的觸發358


    8.2.2分層編譯360


    8.2.3JIT編譯流程362


    8.2.4CoreCLR中的相關代碼363


    第3節IR結構366


    8.3.1HIR與LIR366


    8.3.2HIR的結構367


    8.3.3HIR的例子367


    8.3.4LIR的結構372


    8.3.5LIR的例子372


    8.3.6常見的HIR結構376


    8.3.7CoreCLR中的相關代碼382


    第4節IL解析383


    8.4.1創建本地變量表383


    8.4.2創建基礎塊列表383


    8.4.3創建異常處理表384


    8.4.4構造語法樹385


    8.4.5CoreCLR中的相關代碼386


    第5節函數內聯387


    8.5.1內聯的條件388


    8.5.2內聯的處理389


    8.5.3CoreCLR中的相關代碼390


    第6節IR變形390


    8.6.1添加內部代碼390


    8.6.2提升構造體391


    8.6.3標記暴露地址的本地變量393


    8.6.4對基礎塊中的各個節點進行變形操作393


    8.6.5條件運算節點396


    8.6.6CoreCLR中的相關代碼398


    第7節流程分析399


    8.7.1計算前任基礎塊與後任基礎塊399


    8.7.2計算邊緣權重(Edge Weight)400


    8.7.3調整基礎塊順序400


    8.7.4計算可到達的基礎塊400


    8.7.5計算支配與支配邊界401


    8.7.6插入GC檢測點402


    8.7.7添加小函數402


    8.7.8CoreCLR中的相關代碼403


    第8節本地變量排序404


    8.8.1根據引用計數排序本地變量404


    8.8.2CoreCLR中的相關代碼404


    第9節評價順序定義405


    8.9.1決定語法樹節點的評價順序405


    8.9.2CoreCLR中的相關代碼405


    第10節變量版本標記406


    8.10.1SSA406


    8.10.2構建SSA407


    8.10.3構建VN410


    8.10.4CSSA與TSSA411


    8.10.5CoreCLR中的相關代碼411


    第11節循環優化413


    8.11.1循環的結構413


    8.11.2循環反轉415


    8.11.3循環克隆416


    8.11.4循環展開417


    8.11.5循環不變代碼外提418


    8.11.6CoreCLR中的相關代碼419


    第12節賦值傳播420


    8.12.1替換擁有相同值的變量420


    8.12.2CoreCLR中的相關代碼421


    第13節公共子表達式消除421


    8.13.1合並擁有相同值的表達式421


    8.13.2CoreCLR中的相關代碼422


    第14節斷言傳播424


    8.14.1生成並傳播斷言424


    8.14.2CoreCLR中的相關代碼425


    第15節邊界檢查消除426


    8.15.1根據斷言消除邊界檢查426


    8.15.2CoreCLR中的相關代碼427


    第16節合理化427


    8.16.1轉換HIR結構到LIR結構427


    8.16.2轉換LCL_VAR節點428


    8.16.3轉換ADDR與IND節點428


    8.16.4刪除COMMA節點430


    8.16.5CoreCLR中的相關代碼430


    第17節低級化431


    8.17.1分割針對long類型的操作431


    8.17.2轉換算術運算到地址模式431


    8.17.3轉換除法運算和求餘運算431


    8.17.4轉換SWITCH節點433


    8.17.5針對函數調用添加PUTARG_REG與PUTARG_STK節點435


    8.17.6轉換CALL節點436


    8.17.7標記節點是否為被包含節點440


    8.17.8標記節點被使用時是否需要先加載到CPU寄存器440


    8.17.9CoreCLR中的相關代碼441


    第18節線性掃描寄存器分配442


    8.18.1寄存器分配442


    8.18.2線性掃描寄存器分配簡介442


    8.18.3CoreCLR中的相關代碼450


    第19節彙編指令生成451


    8.19.1計算幀布局451


    8.19.2生成彙編指令453


    8.19.3包含異常處理小函數的彙編代碼456


    8.19.4CoreCLR中的相關代碼459


    第20節機器代碼生成460


    8.20.1生成機數據460


    8.20.2CoreCLR中的相關代碼463


    第21節函數頭信息464


    8.21.1除錯信息的結構465


    8.21.2異常處理表的結構466


    8.21.3GC信息的結構466


    8.21.4函數對像的結構467


    8.21.5棧回滾信息的結構467


    第22節AOT編譯468


    8.22.1使用.NET Framework的NGen工具執行AOT編譯469


    8.22.2使用.NET Core的CrossGen工具執行AOT編譯469


    附錄A中英文專業名詞對照表472


    附錄B常用IL指令一覽480


    附錄C常用彙編指令一覽485


    附錄DSOS擴展命令一覽489


    附錄EIR語法樹節點類型一覽517


    參考文獻523

    前言
    首先非常感謝您在百忙之中翻開本書。本書主要介紹 .NET Core公共語言運行時的底層實現,包括異常、多線程、GC(Garbage Collection)以及JIT編譯器(Justintime Compiler)的實現原理與細節。閱讀本書可以加深對 .NET框架的理解,這些知識會在編寫框架以及高性能程序時發揮重要的作用。如果您有興趣,本書中的知識還可以幫您向CoreCLR添加或修改功能並貢獻代碼,或者實現一個自己的語言框架。
    我在2017年的年初開始閱讀 .NET Core源代碼,在此之前我隻是一個擁有一些 C 與彙編知識的開發者,直到某一天一個 QQ 群的群友推薦我去閱讀 .NET Core 的源代碼,從此之後的一年時間裡,我把大量的時間花在了閱讀源代碼上,收獲很多,包括理解了各種各樣曾經以為是黑箱子的機制,以及編寫代碼時會更多地去思考執行代碼時底層發生的處理。再之後,我在博客上發表了一些介紹 .NET Core底層實現的文章,雖然理解這些文章需要的知識很多,但還是收到了一些反響,並且得到了北京航空航天大學出版社的邀請。在此我非常感謝推薦我閱讀 .NET Core源代碼的群友以及邀請我編寫此書的北京航空航天大學出版社編輯。

    首先非常感謝您在百忙之中翻開本書。本書主要介紹 .NET Core公共語言運行時的底層實現,包括異常、多線程、GC(Garbage Collection)以及JIT編譯器(Justintime Compiler)的實現原理與細節。閱讀本書可以加深對 .NET框架的理解,這些知識會在編寫框架以及高性能程序時發揮重要的作用。如果您有興趣,本書中的知識還可以幫您向CoreCLR添加或修改功能並貢獻代碼,或者實現一個自己的語言框架。


    我在2017年的年初開始閱讀 .NET Core源代碼,在此之前我隻是一個擁有一些 C 與彙編知識的開發者,直到某一天一個 QQ 群的群友推薦我去閱讀  .NET Core 的源代碼,從此之後的一年時間裡,我把大量的時間花在了閱讀源代碼上,收獲很多,包括理解了各種各樣曾經以為是黑箱子的機制,以及編寫代碼時會更多地去思考執行代碼時底層發生的處理。再之後,我在博客上發表了一些介紹 .NET Core底層實現的文章,雖然理解這些文章需要的知識很多,但還是收到了一些反響,並且得到了北京航空航天大學出版社的邀請。在此我非常感謝推薦我閱讀 .NET Core源代碼的群友以及邀請我編寫此書的北京航空航天大學出版社編輯。


    本書內容很大程度上依賴於對 .NET Core的源代碼分析,與《CLR via C#》不一樣的是,本書並沒有全面地去介紹公共語言運行時的各個組成部分,而是選擇了幾個重要的主題,包括異常、多線程、GC以及JIT,並詳細介紹它們的實現原理與實現細節,且會給出相關的彙編代碼以及數據結構,我相信深入的學習比淺顯的帶過更有意義。作為基礎內容,本書還會介紹MSIL與x86彙編,其中MSIL部分由微軟的MVP劉浩楊編寫,劉浩楊是 .NET的AOP框架AspectCore的作者以及APM框架SkyWalking的 .NET探針的主要開發者,對 .NET框架以及MSIL有著非常深入的理解。


    雖然本書與 .NET Core源代碼的關聯比較大,部分章節也會給出相關的源代碼鏈接,但理解本書的內容不需要閱讀源代碼,本書包含了大量的圖表用於解釋數據結構與處理流程,如果您是一個擁有一年以上經驗的 .NET開發者,並且對 .NET運行時的底層實現有興趣,那麼應該可以順利地閱讀本書並理解大部分內容。部分相對難以理解的內容以及源代碼鏈接會放在每節的後(即“CoreCLR中的相關代碼”小節),您可以跳過這部分的內容,對閱讀接下來的章節不會有影響。如果您在閱讀過程中有疑問,可以瀏覽網站,在上面找到提問用的倉庫並建立issue提問,也可以加入網站上列出的QQ群討論。不管您是出於興趣還是工作需要閱讀本書,都希望您可以從中得到收獲。



     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部