日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

和我一起作Tess的windbg lab - Lab3, Memory

發布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和我一起作Tess的windbg lab - Lab3, Memory 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://blogs.msdn.com/b/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx

操作步驟:

1、產生壓力:tinyget -srv:localhost -uri:/BuggyBits/Links.aspx -loop:4000

2、觀察taskmgr的輸出,w3wp的內存每秒鐘大概增長100M。

3、內存到700M左右的時候,抓一個hang dump

4、由于這是一個memory的問題,所以我們要先看GC Heap的情況,運行命令:!eeheap -gc,結果如下:

  GC Heap Size? 0x2b307720(724596512)

  由于dump一共870M,而GC占用了720M左右,所以我們的重點在于托管內存的分析。

5、看heap的整體狀況,運行!dumpheap -stat,結果如下:

  790fd8c4??? 49787??? 721599752 System.String

  嗯,720M的托管內存中,String占用了絕大多數。

6、看一下string的情況,根據2/8原則,大小相同的string也許會很多,這里我們過濾一下,看看10K以上大小的字符串,運行命令:!dumpheap -mt 790fd8c4??-min 10000

  0331d6dc 790fd8c4??? 20020????
  03322534 790fd8c4??? 20020????
  0332738c 790fd8c4??? 20020????
  0332c1e4 790fd8c4??? 20020????
  0333103c 790fd8c4??? 20020?? ?

  大部分都是20K的字符串,隨便找一個,我們需要看它被誰分配的

7、運行!gcroot 0331d6dc,結果如下:

  Scan Thread 16 OSTHread 318
  Scan Thread 18 OSTHread c38
  Scan Thread 19 OSTHread a40
  Scan Thread 20 OSTHread c00
  Scan Thread 24 OSTHread 998
  Scan Thread 14 OSTHread 4cc
  Finalizer queue:Root:0331d6b8(Link)->
  0331d6c8(System.Text.StringBuilder)->
  0331d6dc(System.String)

  在14號線程中,Link引用了這個字符串。而且我們看到,link是在Finalizer Queue中的。

8、查看finalizequeue,輸出如下:

  057e0bcc??? 35998?????? 575968 Link

  一共35998個Link對象。由于該對象存在于Finalizequeue中,所以一定顯示的實現了Finalize方法。

9、查看該方法,代碼如下:

  ~Link()
  {
??????  //some long running operation when cleaning up the data
??????  Thread.Sleep(5000);
  }

10、換個方向,看上面步驟7中的那個Link對象,!do 0331d6b8,輸出結果如下:

?????   MT??? Field?? Offset???????????????? Type VT???? Attr??? Value Name
  790fdc5c? 4000006??????? 4 ...ext.StringBuilder? 0 instance 0331d6c8 url
  790fd8c4? 4000007??????? 8??????? System.String? 0 instance 029bb0b8 name
  再看第一個url對象,運行!do 0331d6c8 ,結果如下:

  ????? MT??? Field?? Offset???????????????? Type VT???? Attr??? Value Name
  791016bc? 40000b1??????? 8??????? System.IntPtr? 1 instance??? dc1d8 m_currentThread
  79102290? 40000b2??????? c???????? System.Int32? 1 instance 2147483647 m_MaxCapacity
  790fd8c4? 40000b3??????? 4??????? System.String? 0 instance 0331d6dc m_StringValue

  注意最后一行的那個m_StringValue,對比一下步驟7中的!gcroot輸入。

  從這里我們看到,Link中包含了一個StringBuilder,而StringBuilder中包含了一個20K的字符串。

11、看代碼:

  public Link(string name, string url)
???   {
???????   this.name = name;
???????   this.url.Append(url);
???   }
  可以看到,Link對象的構造方法中,引用了字符串。

12、再回頭看上面的步驟9,Link自作聰明的實現了Finalize方法,但是該方法執行的時間太長(這里是5秒鐘),導致垃圾回收的時候,遲遲不能把該對象回收掉。因為Link引用了字符串url,所以相應的字符串也無法被回收。這樣內存就上漲的很快了。

?

Over

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的和我一起作Tess的windbg lab - Lab3, Memory的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 又黄又色又爽 | 欧美三级午夜理伦三级老人 | 一区二区三区四区在线免费观看 | 涩涩在线播放 | 国产精品国产三级国产传播 | 97碰| 天堂影院一区二区 | 免费人成视频在线 | 一级黄色片一级黄色片 | 一区二区三区蜜桃 | 亚洲三区精品 | 免费人成在线观看视频播放 | 亚洲国产一区二区a毛片 | 日韩中文字幕网址 | 91精品视频一区二区三区 | 色综合久久久无码中文字幕波多 | 日韩人妻无码一区二区三区99 | 超碰黑丝 | 国精产品一区一区三区免费视频 | 亚瑟av在线| 青青草自拍偷拍 | 在线免费观看av网站 | 日本大胆人体视频 | 五月天激情国产综合婷婷婷 | 中文字幕一区二区三区人妻在线视频 | 9999免费视频 | 不用播放器看av | 99热这里只有精品3 成年人黄色网址 | 岛国av在线免费观看 | 青青草成人网 | 老子影院午夜精品无码 | 成人免费看片网站 | 无码人妻丰满熟妇啪啪网站 | 免费裸体美女网站 | 日韩一区二区三免费高清在线观看 | 色吊丝一区二区 | 女人被男人躁得好爽免费视频 | 狠狠狠狠狠狠干 | 日本三区在线 | 成人性免费视频 | av在线资源播放 | 欧美与黑人午夜性猛交久久久 | 樱花草涩涩www在线播放 | 成人av资源网 | 日本69av| 少妇全黄性生交片 | 中国老熟妇自拍hd发布 | 精品美女久久久久 | 国产欧美一区二区三区视频 | 黄色仓库av | 日本一区二区欧美 | 日本亲子乱子伦xxxx50路 | 黄色美女视频网站 | 日本三级黄色录像 | av在线资源观看 | 驯服少爷漫画免费观看下拉式漫画 | xxx老太太| 午夜性视频 | 一级特黄aa | 密臀av在线 | 久操精品在线 | 欧美专区日韩专区 | 成人性生活免费视频 | 中文字幕va | 国产精一区| 久久国产电影 | 99亚洲国产精品 | 欧美久久久一区二区三区 | 欧美激情在线免费 | 手机在线免费看av | 99久久综合国产精品二区 | 妇女一级片 | 在线观看午夜视频 | 在线播放a | 老司机av导航 | 女的高潮流时喷水图片大全 | 黄色片免费的 | 深夜在线 | 我要看18毛片 | 成人免费观看cn | 男女av免费| 日本人妻换人妻毛片 | 91视频在线观看视频 | 国产视频一区二区在线观看 | 国产人成无码视频在线观看 | 久久综合久久鬼 | 卡通动漫亚洲综合 | 美梦视频大全在线观看高清 | 天堂网视频在线观看 | 性欧美18| 日韩有码专区 | 日韩在线一级片 | 日日干综合 | 亚洲精品国产一区二区 | 在线观看毛片av | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 91精品国产一区二区三区蜜臀 | 内射无码专区久久亚洲 | 色女人天堂 |