如何定位Source Generators性能问题
前言
在以前的文章中,我們介紹過如何調(diào)試Source Generators。但是當(dāng)實(shí)現(xiàn)較為復(fù)雜時(shí),我們需要能夠快速地分析Source Generators性能的方法。
默認(rèn)情況下,使用VS 2019自帶的“性能探查器”不能分析Source Generators項(xiàng)目,因?yàn)樗穷悗祉?xiàng)目:
如果設(shè)置引用Source Generators的目標(biāo)項(xiàng)目作為啟動(dòng)項(xiàng)目,也不行。因?yàn)椤靶阅芴讲槠鳌敝荒苁占瘑?dòng)時(shí)的數(shù)據(jù),而不是編譯時(shí),而編譯時(shí)才是Source Generators實(shí)際執(zhí)行的位置。
怎么辦?
那就想辦法啟動(dòng)編譯指令。
獲取編譯指令
這時(shí)就要祭出我們在《你知道MSBuild都干了些什么》使用過的神器——MSBuild Structured Log Viewer。
生成日志后,可以看到MSBuild準(zhǔn)備執(zhí)行的所有目標(biāo),每個(gè)目標(biāo)中包含多個(gè)任務(wù)。
我們?yōu)g覽所有任務(wù),最終可以定位到引用Source Generators的目標(biāo)項(xiàng)目執(zhí)行的Task Csc:?
Csc 任務(wù) - 包裝 csc.exe,生成可執(zhí)行 (.exe) 文件、動(dòng)態(tài)鏈接庫(.dll 文件)或者代碼模塊(.netmodule 文件) 。有關(guān) csc.exe 的詳細(xì)信息,請參閱 C# 編譯器選項(xiàng) 。
這里的CommandLineArguments就是我們要的編譯指令。
設(shè)置調(diào)試屬性
打開Source Generators項(xiàng)目的屬性窗口,設(shè)置“調(diào)試”屬性:
啟動(dòng):可執(zhí)行文件
可執(zhí)行文件:Task Csc參數(shù)CommandLineArguments里的csc.exe全路徑
應(yīng)用程序參數(shù):Task Csc參數(shù)CommandLineArguments里的csc.exe后面的全內(nèi)容
工作目錄:引用Source Generators的目標(biāo)項(xiàng)目所在目錄
執(zhí)行性能探查器
將Source Generators項(xiàng)目設(shè)為啟動(dòng)項(xiàng)目,然后運(yùn)行“性能探查器”,勾選“CPU 使用率”,然后點(diǎn)擊“開始”按鈕。
運(yùn)行完成后,在打開的報(bào)告中就可以查看Source Generators的性能瓶頸了:
如果你覺得這篇文章對你有所啟發(fā),請關(guān)注我的個(gè)人公眾號(hào)”My IO“
總結(jié)
以上是生活随笔為你收集整理的如何定位Source Generators性能问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 和我一起来分析某药品仓储管理系统 卡死现
- 下一篇: WPF 实现图片切成九宫格控件~