鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...
鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

JVM調優已經是普通Java工程師的必修課了,而.NET開源快5年了,CLR層面的優化到目前都不多見,甚至常用的性能調優工具都還沒玩過。.NET5馬上來了,要想在互聯網大潮中逆襲,光靠平臺是不夠的,開發者也得給力才行!這裡整理了幾款性能調優工具,就著個人的實操經驗給大家分享下,希望能有些幫助。

性能調優思路

性能調優就是用更少的資源提供更好的服務,成本利益最大化。性能調優的手段並不新鮮,常規手段如下:

1 空間換時間

緩存就是典型的例子,將數據額外存儲一份兒,下次直接重用,空間換時間。

2 時間換空間

大文件處理時,切分數據分批次處理,花更多的時間,用更少的空間完成處理。

3 分治思想

典型的歸併排序、快排,都是將數據分成小塊兒排序最終再合併,分而治之。

4 異步化

各種消息隊列就是典型案例,將業務分拆,避免阻塞,提升吞吐量。

5 並行

包括多線程和單線程多進程兩種模式,就是將任務分開,同時執行以加快速度。

6 集群化

提供良好的擴展能力,更多的資源換取更好的性能。

性能調優的方式很多,然而最直接有效的辦法就是使用優秀的工具,工欲善其事必先利其器,優秀的工具能讓性能調優事半功倍!下面給大家推薦幾款常用工具,親測非常靠譜!

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

BenchmarkDotNet

性能基準測試

性能測試是開發人最關心的,然而一個算法的性能在不同的設備、不同的CLR、不同的測試方式、不同的數據量,表現出來的結果也是不一樣,因此要測試一個算法的性能,需要在充分的背景下才有意義,這就是性能基準測試,C#首選的就是大名鼎鼎的BenchmarkDotNet。

BenchmarkDotNet是一個用MIT協議開源的C#程序性能測試庫,非常簡單易用,開源地址為
https://github.com/dotnet/BenchmarkDotNet。現在向Github提交代碼前,都會來一波性能測試,用法也非常簡單,直接用BenchmarkDotNet即可。下圖內容,就是基於Benchmark做的性能基準測試結果。

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

.NET5調優 Part 1

基於BenchmarkDotNet對多場景代碼進行基準性能測試,打破陋習探究本質,完成代碼定向優化,輸出優化思維方式。

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

參與人數較多,也可加微信號:zhaoxihhhhh

JMeter

壓力測試

壓力測試是一個項目質量的基礎保障行為,沒有經過壓測的項目怎敢上線?說到壓力測試,重量級的Loadrunner這些年用的要少一些了,很多專業測試,也是使用JMeter來做壓測了。鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

JMeter是Apache公司基於Java開發的一款開源壓力測試工具,體積小,功能全,是一個輕量級的測試工具,使用起來非常簡單。其原理是通過中間代理,監控與收集併發客戶端發現的指令,將其生成腳本,併發送到應用服務器,再監控服務器反饋結果的一個過程。有著詳盡的可視化界面,讓開發者可以針對性去優化,有的放矢!

.NET5調優 Part 2

基於JMeter壓測Docker裡面的Core WebApi實例,輸出響應曲線圖,實踐Core WebApi多個優化技巧,定向優化項目!

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

參與人數較多,也可加微信號:zhaoxihhhhh

JetBrains DotTrace

內存優化

.NET開發者一般不怎麼關心GC和內存洩漏問題,然而一旦發生了,往往就束手無策了。這裡給大家推薦下JetBrains DotTrace Memory,親測最好用的性能調試,內存優化工具!

DotTrace Memory支持兩種模式,識別即時內存狀態,或者動態監控內存分配,擁有豐富的快照視圖,還能快速查找關注的對象數據,甚至可以追蹤到對應的源代碼文件,應用起來效率非常高!

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

.NET5調優 Part 3

快速分配和快速釋放內存-生成內存碎片-製造內存洩漏,DotTrace監控全過程,在限制內存的docker容器實例中追蹤內存使用並完成優化!

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...

學員人數較多,也可加微信號:zhaoxihhhhh

行動起來

鵝廠面試官問了句.NET性能調優,求職者的回覆亮瞎全場...


分享到:


相關文章: