精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次 .NET某賬本軟件 非托管泄露分析

開發 前端
在 C# 所處的 Windows 進程中,其實有很多的堆,比如:crt堆,ntheap堆,gc堆,clr私有堆,堆外(VirtualAlloc),調試沒有標準答案,不斷的假設,試探,摸著石頭過河,言外之意就是這個堆沒問題,不代表其他堆也沒有問題,這樣想思路就比較順暢了,我們可以看看其他的堆,比如這里的 CLR私有堆,使用 !eeheap -loader 觀察。

一:背景

1. 講故事

中秋國慶長假結束,哈哈,在老家拍了很多的短視頻,有興趣的可以上B站觀看:https://space.bilibili.com/409524162 ,今天繼續給大家分享各種奇奇怪怪的.NET生產事故,希望能幫助大家在未來的編程之路上少踩坑。

話不多說,這篇看一個.NET程序集泄露導致的CLR私有堆泄露的案例,這個泄露和 JsonConvert 有關,哈哈,相信你肯定比較驚訝!

二:WinDbg 分析

1. 到底是哪里的泄露

首先觀察一下進程的提交內存的大小,即通過 !address -summary 觀察。

0:000> !address -summary
--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
Free                                    390     7dfa`63fa8000 ( 125.978 TB)           98.42%
<unknown>                             13628      205`32974000 (   2.020 TB)  99.92%    1.58%
Heap                                   8143        0`4042b000 (   1.004 GB)   0.05%    0.00%
Stack                                   186        0`1f8e0000 ( 504.875 MB)   0.02%    0.00%
Image                                  1958        0`09775000 ( 151.457 MB)   0.01%    0.00%
Other                                     9        0`001d7000 (   1.840 MB)   0.00%    0.00%
TEB                                      62        0`0007c000 ( 496.000 kB)   0.00%    0.00%
PEB                                       1        0`00001000 (   4.000 kB)   0.00%    0.00%

--- Type Summary (for busy) ------ RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_MAPPED                              312      200`00a06000 (   2.000 TB)  98.92%    1.56%
MEM_PRIVATE                           21717        5`91ecd000 (  22.280 GB)   1.08%    0.02%
MEM_IMAGE                              1958        0`09775000 ( 151.457 MB)   0.01%    0.00%

--- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
MEM_FREE                                390     7dfa`63fa8000 ( 125.978 TB)           98.42%
MEM_RESERVE                            4509      205`0fc14000 (   2.020 TB)  99.89%    1.58%
MEM_COMMIT                            19478        0`8c434000 (   2.192 GB)   0.11%    0.00%

當前的提交內存占用了 2.19G,進程堆占用 1G ,差不多占了一半,但不能說明就是非托管內存泄露,接下來繼續觀察下托管堆。

0:000> !eeheap -gc
Number of GC Heaps: 8
------------------------------
Heap 7 (000001C4971013A0)
generation 0 starts at 0x000001C817D201A0
generation 1 starts at 0x000001C817C878D8
generation 2 starts at 0x000001C817261000
ephemeral segment allocation context: none
         segment             begin         allocated              size
000001C817260000  000001C817261000  000001C819013F98  0x1db2f98(31141784)
Large object heap starts at 0x000001C907261000
         segment             begin         allocated              size
000001C907260000  000001C907261000  000001C907261018  0x18(24)
Pinned object heap starts at 0x000001C987261000
000001C987260000  000001C987261000  000001C9872ABA50  0x4aa50(305744)
Heap Size:       Size: 0x1dfda00 (31447552) bytes.
------------------------------
GC Heap Size:    Size: 0xba26488 (195191944) bytes.

從卦中可以看到當前的托管堆占用僅 195M,這就更好的驗證當前確實存在非托管內存泄露,由于非托管內存沒有開啟 ust,也沒有 perfview 的etw文件,所以沒有好的方式進一步挖掘,到這里可能就止步不前了。

2. 到底是哪里的泄露

在 C# 所處的 Windows 進程中,其實有很多的堆,比如:crt堆,ntheap堆,gc堆,clr私有堆,堆外(VirtualAlloc),調試沒有標準答案,不斷的假設,試探,摸著石頭過河,言外之意就是這個堆沒問題,不代表其他堆也沒有問題,這樣想思路就比較順暢了,我們可以看看其他的堆,比如這里的 CLR私有堆,使用 !eeheap -loader 觀察。

0:000> !eeheap -loader
Loader Heap:
--------------------------------------
...
Module 00007ff846e034c0: Size: 0x0 (0) bytes.
Module 00007ff846e03930: Size: 0x0 (0) bytes.
Module 00007ff846e04180: Size: 0x0 (0) bytes.
Module 00007ff846e047e0: Size: 0x0 (0) bytes.
Module 00007ff846e04e40: Size: 0x0 (0) bytes.
Total size:      Size: 0x0 (0) bytes.
--------------------------------------
Total LoaderHeap size:   Size: 0x47252000 (1193615360) bytes total, 0x1f68000 (32931840) bytes wasted.
=======================================

從卦中可以看到有非常多的 module 迸射出來,估計有幾萬個,并且可以看到總的大小是 1.19G,到這里基本就搞清楚了,然來是 程序集泄露。

這里稍微補充一下,像這種問題早期可以使用 dotnet-counter 或者 Windows 的程序集指標 監控一下,或許你就能輕松找出原因,截圖如下:

PS C:\Users\Administrator\Desktop> dotnet-counters monitor -n WebApplication2

圖片圖片

而且 dotnet-counter 還是跨平臺的,非常實用,大家可以琢磨琢磨,接下來抽一個module 用命令 !dumpmodule -mt 00007ff846e034c0 觀察下,內部到底有哪些類型。

0:000> !dumpmodule -mt 00007ff846e034c0
Name: Unknown Module
Attributes:              Reflection IsDynamic IsInMemory 
Assembly:                000001c9e193b9e0
BaseAddress:             0000000000000000
...

Types defined in this module

              MT          TypeDef Name
------------------------------------------------------------------------------
00007ff846e03db0 0x02000002 

Types referenced in this module

              MT            TypeRef Name
------------------------------------------------------------------------------
00007ff820ff5748 0x02000002 xxx.xxx.Json.Converters.PolymorphismConverter`1
00007ff820e710f8 0x02000003 xxx.xxx.Models.IApiResult

0:000> !dumpmt -md 00007ff846e03db0
Number of IFaces in IFaceMap: 0
--------------------------------------
MethodDesc Table
           Entry       MethodDesc    JIT Name
00007FF822F05FA8 00007ff823285b50   NONE xxx.Json.Converters.PolymorphismConverter`1
00007FF822EFD5E8 00007ff82323b1b8   NONE System.Text.Json.Serialization.JsonConverter`1
00007FF822EFD5F0 00007ff82323b1c8   NONE System.Text.Json.Serialization.JsonConverter`1
00007FF8414CB978 00007ff846e03d88    JIT IApiResultDynamicJsonConverter..ctor()

仔細分析卦中信息,可以很明顯的看到。

  • Json.Converters.PolymorphismConverter

看樣子和牛頓有關系,并且還是一個自定義的 JsonConvert。

  • IApiResult 和 IApiResultDynamicJsonConverter

看樣子是一個接口的返回協議類,需要在代碼中重點關注。

有了這些信息,接下來就是重點關注代碼中的 PolymorphismConverter 類,果然就找到了一處。

圖片圖片

從類的定義來看,一般這種東西都是在 ConfigureServices 方法中做 初始化定義 的,按理說問題不大,那為什么會有問題呢?還得要查下它的引用,終于給找到了,截圖如下:

圖片圖片

這是一個低級錯誤哈,每次讀取 ApiResult.Data 的時候都要 jsonSerializerOptions.AddPolymorphism(); 操作,也就每次都會創建程序集,終于真相大白。

三:總結

這種程序集泄露導致的生產事故不應該哈,反應了團隊中多人協作的時候還是有待提高!

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2023-09-26 01:11:58

MES非托管泄露

2022-10-09 10:47:37

NET視覺軟件

2022-09-13 17:46:19

STA模式內存

2023-07-06 10:11:38

.NET模式dump

2024-12-27 13:31:18

.NETdump調試

2023-09-27 07:23:10

.NET監控軟件

2024-05-31 12:56:06

.NET代碼方法

2023-05-15 11:15:50

.NET門診語句

2025-09-02 01:35:00

.NET光學定位軟件

2023-06-26 00:12:46

2024-03-28 12:56:36

2023-04-06 10:52:18

2024-05-20 09:39:02

.NETurl線程池

2024-07-12 11:20:34

.NET崩潰視覺程序

2024-03-26 00:44:53

.NETCIM系統

2022-10-13 18:40:05

.NETOA后端

2023-03-26 20:24:50

ERP網站系統

2022-10-25 14:17:01

.NET代碼程序

2022-01-17 21:28:36

管理系統.NET

2024-07-09 11:51:20

Windows線程池源碼
點贊
收藏

51CTO技術棧公眾號

美女福利视频在线观看| 国内自拍第二页| 成人高清在线| 国产一区二区0| 国内精品视频在线| 一区二区三区久久久久| 国产一区二区三区精品在线观看| 午夜影院久久久| 色噜噜狠狠一区二区三区| 国产毛片毛片毛片毛片| 亚洲欧美成人综合| 欧美成人剧情片在线观看| 动漫精品一区二区三区| 久久av偷拍| 91福利视频久久久久| 国产黄色激情视频| 三区四区电影在线观看| av不卡一区二区三区| 成人动漫网站在线观看| 色婷婷av国产精品| 亚洲色图网站| 色狠狠久久aa北条麻妃| 国产亚洲色婷婷久久99精品91| 精品久久99| 色94色欧美sute亚洲线路二 | 亚洲色大成网站www| 蜜乳av一区二区三区| 91高潮在线观看| 国产精品嫩草影院俄罗斯| 影视先锋久久| 亚洲精品乱码久久久久久按摩观| 成人高清在线观看视频| 成人在线观看免费播放| 色综合天天综合给合国产| www.日本少妇| а√天堂官网中文在线| 国产精品情趣视频| 无遮挡亚洲一区| 青春草在线观看| 不卡视频一二三| 高清国语自产拍免费一区二区三区 | 久久综合av| 在线播放亚洲激情| 37p粉嫩大胆色噜噜噜| 久久精品凹凸全集| 日韩精品一区二区三区四区 | 日韩福利一区| 精品久久久中文| 97成人在线免费视频| 91超碰国产在线| 亚洲国产综合91精品麻豆| wwwjizzjizzcom| 免费电影网站在线视频观看福利| 一区二区在线免费观看| 妺妺窝人体色www看人体| sm国产在线调教视频| 亚洲精品国产一区二区三区四区在线| 国产精品美女在线播放| caoporn免费在线视频| 亚洲欧美一区二区不卡| 国产免费一区二区三区四在线播放| 国产福利在线观看| 国产精品毛片久久久久久久| 亚洲.欧美.日本.国产综合在线| www.av在线播放| 国产精品久久久久久久久图文区| 亚洲精品乱码久久久久久蜜桃91| 在线免费观看黄| 亚洲视频一区在线| 久艹在线免费观看| 自拍网站在线观看| 欧美性大战久久| 一级黄色片国产| 91蝌蚪精品视频| 日韩精品视频在线观看网址| 精品无人区无码乱码毛片国产| 欧美色就是色| 欧美日本国产在线| 亚洲黄色小说图片| 蜜臀99久久精品久久久久久软件| 91色精品视频在线| 高清一区二区三区四区| 91在线观看一区二区| 三级三级久久三级久久18| 永久免费av片在线观看全网站| 国产精品国产三级国产三级人妇| 欧美日韩dvd| 日韩精品美女| 在线播放视频一区| 91丨porny丨对白| 成人免费av| 欧美美女15p| 久久久久久不卡| 国产美女在线观看一区| 免费中文日韩| 成人在线观看亚洲| 欧美性xxxxxx| 国产探花在线观看视频| 免费成人av| 欧美精品免费在线| 好吊色在线视频| 成人午夜免费av| 亚洲精品一区二区三区樱花| 免费毛片在线看片免费丝瓜视频 | 成年人在线观看视频免费| 另类视频一区二区三区| 亚洲欧美一区二区精品久久久| 日韩欧美视频免费观看| 国产欧美日本| 99精彩视频| 98在线视频| 高跟丝袜欧美一区| 精品人妻二区中文字幕| 欧美www视频在线观看| 91av在线影院| 动漫av一区二区三区| 国产精品久久久久久久浪潮网站 | 日本一区二区三区中文字幕| 亚洲精品suv精品一区二区| 老司机深夜福利网站| 国产日韩亚洲| 国产精品果冻传媒潘| 男女污污视频在线观看| 午夜私人影院久久久久| 无套内谢丰满少妇中文字幕| 91综合久久一区二区| 国产99久久久欧美黑人| 天堂网在线资源| 亚洲国产wwwccc36天堂| 古装做爰无遮挡三级聊斋艳谭| 青青草国产免费一区二区下载| 欧美做受高潮1| 欧日韩在线视频| 亚洲一区二区四区蜜桃| 韩国三级与黑人| 女主播福利一区| 成人欧美一区二区三区黑人孕妇| 亚洲精品传媒| 在线精品亚洲一区二区不卡| 美国黄色a级片| 亚洲自拍另类| 日本一区视频在线播放| 伊人久久综合一区二区| 精品视频在线播放| 国语对白永久免费| 91免费版在线看| av片中文字幕| 精品国产一区二区三区| 日韩av不卡在线| 国产三区四区在线观看| 在线视频一区二区三区| 久操视频在线观看免费 | 91网址在线观看精品| 99久久www免费| 成人做爰www免费看视频网站| 精品176二区| 日韩欧美综合一区| 久久久久久久久久久久国产| 成人一级视频在线观看| 欧美日韩一道本| 欧美美乳视频| 国产精品丝袜一区二区三区| 欧美日本高清| 日韩欧美国产午夜精品| 亚洲综合一二三| 久久综合狠狠综合久久综合88| 黄色一级大片在线观看| 日韩精品永久网址| 亚洲综合色av| 超碰在线网站| 亚洲欧洲xxxx| 国产精品主播一区二区| 亚洲高清在线精品| 精品无码一区二区三区| 久久99精品国产.久久久久| 天天想你在线观看完整版电影免费| 国产精品视频3p| 国产91色在线|免| 国产在线激情| 亚洲国产精品字幕| 日韩久久久久久久久久| 亚洲欧美日韩国产成人精品影院| 香蕉视频污视频| 老司机精品视频导航| 男人天堂a在线| 欧美一级淫片| 国产v亚洲v天堂无码| av有声小说一区二区三区| 久久国产精品99国产精| 污污网站在线免费观看| 欧美日韩国产123区| 国产午夜免费视频| 欧美国产精品中文字幕| 色悠悠在线视频| 青青草91视频| 欧美在线观看成人| 你懂的国产精品永久在线| 欧美另类网站| 成人在线视频中文字幕| 国产日韩精品视频| 伊人久久在线| 欧美黑人巨大xxx极品| 在线看免费av| 亚洲美女福利视频网站| 国产视频在线观看视频| 在线视频欧美区| 国产精品第一页在线观看| 成人欧美一区二区三区小说| 受虐m奴xxx在线观看| 国产91精品入口| 国产一伦一伦一伦| 美女诱惑黄网站一区| 日本久久久网站| 亚洲国产一成人久久精品| 欧美在线一区二区三区四区| 韩国女主播一区二区三区| 成人信息集中地欧美| 午夜精品成人av| 91精品国产91久久久久| 色屁屁www国产馆在线观看| 丝袜美腿精品国产二区| 欧美女优在线| 日韩电影第一页| 天天干,夜夜爽| 日韩精品一区二区三区swag| 97超碰国产在线| 欧美日韩一区视频| japanese国产在线观看| 色综合久久综合网欧美综合网| 久久免费播放视频| 一区二区久久久久| 五月天av网站| 亚洲黄色片在线观看| 精品一区二区在线观看视频| 国产精品毛片大码女人| 日韩av片在线| 日本一区二区三区在线观看| 新91视频在线观看| 国产午夜久久久久| 亚洲国产天堂av| 久久久久国产精品麻豆| 波多野结衣a v在线| 久久综合九色综合97婷婷女人 | 在线观看一区二区视频| 日日噜噜噜噜人人爽亚洲精品| 亚洲mv大片欧洲mv大片精品| 中文字幕另类日韩欧美亚洲嫩草| 中文字幕亚洲一区二区av在线| 精品人妻中文无码av在线| 国产亚洲欧美日韩日本| av女人的天堂| 国产精品久久久久久久久晋中| 男女男精品视频网站| 亚洲国产成人午夜在线一区| 五月激情四射婷婷| 中文字幕一区二区5566日韩| 欧美另类videoxo高潮| 亚洲黄色免费网站| 天海翼一区二区| 日韩欧美在线视频日韩欧美在线视频| 亚洲 日本 欧美 中文幕| 欧美性受xxxx黑人xyx| 国产精品亚洲lv粉色| 欧美大片一区二区三区| 少妇人妻一区二区| 亚洲人成毛片在线播放| 天天综合视频在线观看| 欧美成人中文字幕在线| 欧美激情网站| 国产精品一区二区3区| 精品成人18| 国产在线精品一区| 国产尤物久久久| 中文字幕一区二区三区四区五区人| 欧美69视频| 精品人妻一区二区三区四区在线| 日韩二区三区在线观看| 亚洲热在线视频| 99久久婷婷国产综合精品| 亚欧精品视频一区二区三区| 一区二区激情小说| 亚洲 欧美 中文字幕| 制服.丝袜.亚洲.中文.综合| 免费观看黄色一级视频| 亚洲最新视频在线| 影音先锋中文在线视频| 欧洲亚洲妇女av| 在线视频成人| 美女亚洲精品| 欧美影视一区| 成年人在线看片| 丁香六月久久综合狠狠色| 精品欧美一区二区久久久| 一区二区三区日韩精品| 国产一级一级国产| 亚洲精品在线电影| 2021av在线| 欧美有码在线观看视频| 日韩精品一区二区三区中文| 欧美日韩免费高清| 欧美午夜国产| 色噜噜狠狠一区二区| 91丨国产丨九色丨pron| 成人高潮免费视频| 在线观看视频一区二区欧美日韩| www.黄色小说.com| 色综合亚洲精品激情狠狠| a级片在线免费| 国产精品九九久久久久久久| 18国产精品| 中文字幕欧美人与畜| 日欧美一区二区| 美女又爽又黄免费| 亚洲精品中文字幕在线观看| 亚洲 小说区 图片区| 亚洲精品自拍视频| 国产亚av手机在线观看| 成人午夜一级二级三级| 青青草国产成人a∨下载安卓| 日韩欧美精品在线观看视频| 成人免费视频一区二区| 青青草原国产视频| 欧美人狂配大交3d怪物一区| 国产在线观看网站| 热草久综合在线| 日韩激情啪啪| 我的公把我弄高潮了视频| 国产综合久久久久久鬼色 | 日本福利片在线| 久久久久久久爱| 一区二区亚洲视频| 日本一道在线观看| 国产乱码精品一品二品| 亚洲天堂一级片| 555www色欧美视频| 精精国产xxxx视频在线| 国产欧美在线播放| 欧美gay男男猛男无套| xx欧美撒尿嘘撒尿xx| 国产精品麻豆视频| 亚洲综合五月天婷婷丁香| 在线观看国产精品91| av成人免费| 影音欧美亚洲| 国产乱子轮精品视频| 美女视频久久久| 91麻豆精品国产91久久久久 | 亚洲日本va在线观看| 国产精品亚洲lv粉色| 欧美成人精品激情在线观看| 国产精品毛片aⅴ一区二区三区| 中文字幕欧美日韩一区二区三区| 蜜桃久久精品一区二区| 欧美大片xxxx| 精品久久久久久久人人人人传媒| 欧美激情成人动漫| 国产在线一区二| 久久久久久一区二区| 最近中文字幕免费| 欧美精品欧美精品系列| a免费在线观看| 国产日韩一区欧美| 亚洲综合电影一区二区三区| 亚洲av无码一区二区三区人| 欧美午夜精品免费| gogogogo高清视频在线| 粉嫩av四季av绯色av第一区| 久久精品91| 欧美日韩午夜视频| 亚洲激情免费观看| 天天综合网站| 草草草视频在线观看| www精品美女久久久tv| 在线视频欧美亚洲| 欧美国产亚洲视频| 少妇精品久久久一区二区三区| 色片在线免费观看| 亚洲制服丝袜av| 国外av在线| 91欧美精品成人综合在线观看| 亚洲激情不卡| 女人黄色一级片| 欧美成人高清电影在线| 日韩不卡免费高清视频| 欧美日韩亚洲国产成人| 久久综合国产精品| 99久久国产免费| 欧洲成人免费视频| 午夜精品国产| 国产在线综合视频| 精品日韩一区二区三区| 78精品国产综合久久香蕉| 999一区二区三区| 中文av一区特黄| 日本黄色三级视频| 国产欧美日韩丝袜精品一区| 在线视频观看日韩| 三级黄色在线观看| 亚洲欧洲日本专区| 亚洲一区二区三区四区电影 |