zoukankan      html  css  js  c++  java
  • dump net core windbg 内存分析

     !dumpheap -stat //检查当前所有托管类型的统计信息

    0:000> !dumpheap -stat //检查当前所有托管类型的统计信息
    ....
    00007ffdb9387a98   777101     69462436 System.Char[]
    00007ffdb938c988   588917    115563505 System.Byte[]
    00007ffdb9389220  1026406    119828936 System.Int32[]
    00007ffdb93516a8   663559    128819040 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[System.Object, mscorlib]][]
    00000218c6c30a80  6436865    197832116      Free
    00007ffdae9cc240    23171    273333144 System.Collections.Generic.HashSet`1+Slot[[System.String, mscorlib]][]
    00007ffdb9391f28 13885170    333244080 System.Boolean
    00007ffd5c24a068 14003455    560138200 Kingdee.BOS.JSON.JSONArray
    00007ffdb9386fc0 14373648   1393615400 System.Object[]
    00007ffdb9386948 76146065   4000287202 System.String
    Total 138435970 objects
    

      

    !dumpheap -mt 00007ffdb9386948 -min 200 //查看mt内容

    0:000> !dumpheap -mt 00007ffdb9386948 -min 200 //查看200byte以上的string
    Address               MT     Size
    ...
    0000021bcbaf5158 00007ffdb9386948     1140
    0000021d375d1038 00007ffdb9386948   149698     
    0000021d375f5920 00007ffdb9386948   149698     
    0000021d3765b138 00007ffdb9386948   149706     
    0000021d37f739c8 00007ffdb9386948   217120     
    0000021d37fa8a08 00007ffdb9386948   190162     
    0000021d38047330 00007ffdb9386948  1224698     
    0000021d3829d348 00007ffdb9386948  1224698     
    0000021d386bd678 00007ffdb9386948  2610994     
    0000021d38bb8500 00007ffdb9386948  2610994     
    
    
    Statistics:
                  MT    Count    TotalSize Class Name
    00007ffdb9386948    10991     76632628 System.String
    Total 10991 objects
    

      

    使用!do命令查看一个对象的内容

    0.000> !do 0000021bcbaf5158 //使用!do命令查看一个对象的内容
    Name:        System.String
    MethodTable: 00007ffdb9386948
    EEClass:     00007ffdb8c850e0
    Size:        1140(0x474) bytes
    File:        C:WindowsMicrosoft.NetassemblyGAC_64mscorlibv4.0_4.0.0.0__b77a5c561934e089mscorlib.dll
    String:      5b13710029d012False2052_T_BD_MATERIAL_MATERIAL.FAuxPropertyIdFBaseUnitIdFCategoryIDFChargeIDFCheckIncomingFDefaultVendorFErpClsIDFInvPtyIdFIsAffectPlanFIsAffectPlan1FIsBatchManageFIsComControlFIsEnableFIsEnable1FIsExpParToFlotFIsInventoryFIsPRFIsReturnMaterialFIsSourceControlFIsVmiBusinessFNameFNumberFPlanModeFPurchasePriceUnitIdFPurchaseUnitIdFPurPriceURNomFPurPriceURNumFPurURNomFPurURNumFReceiveAdvanceDaysFReceiveDelayDaysFReceiveMaxScaleFReceiveMinScaleFSalePriceUnitIdFSaleUnitIdFSpecificationFStockIdFStockPlaceIdFStoreUnitIDFTaxTypeFUseOrgId111193
    Fields:
                  MT    Field   Offset                 Type VT     Attr            Value Name
    00007ffdb9389288  400026f        8         System.Int32  1 instance              557 m_stringLength
    00007ffdb9387b00  4000270        c          System.Char  1 instance               35 m_firstChar
    00007ffdb9386948  4000274       90        System.String  0   shared           static Empty
                                     >> Domain:Value  00000218c6c4d220:NotInit  0000021d52d81840:NotInit  <<
    

      

    使用!gcroot 查看一个对象的gc根

    0:000> !gcroot 0000021bcbaf5158 //使用!gcroot 查看一个对象的gc根
    HandleTable:
        00000218c6ff15e8 (pinned handle)
        -> 0000021cc75ebe68 System.Object[]
        -> 0000021bc7629a10 Kingdee.BOS.Cache.KCacheManagerFactory
        -> 0000021bc7629ab8 System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[Kingdee.BOS.Cache.AbstractKCacheManager, Kingdee.BOS]]
        -> 0000021c4da6fa48 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[Kingdee.BOS.Cache.AbstractKCacheManager, Kingdee.BOS]][]
        -> 00000218c83861b8 Kingdee.BOS.Cache.KCacheManager
        -> 00000218c8386630 Kingdee.BOS.Cache.ECache.ECacheManager
        -> 00000218c83866e8 System.Collections.Concurrent.ConcurrentDictionary`2[[System.String, mscorlib],[System.Collections.Generic.HashSet`1[[System.String, mscorlib]], System.Core]]
        -> 0000021bcbae0c70 System.Collections.Concurrent.ConcurrentDictionary`2+Tables[[System.String, mscorlib],[System.Collections.Generic.HashSet`1[[System.String, mscorlib]], System.Core]]
        -> 0000021bcbad0128 System.Collections.Concurrent.ConcurrentDictionary`2+Node[[System.String, mscorlib],[System.Collections.Generic.HashSet`1[[System.String, mscorlib]], System.Core]][]
        -> 0000021bcbb34bf8 System.Collections.Concurrent.ConcurrentDictionary`2+Node[[System.String, mscorlib],[System.Collections.Generic.HashSet`1[[System.String, mscorlib]], System.Core]]
        -> 0000021bcbada790 System.Collections.Concurrent.ConcurrentDictionary`2+Node[[System.String, mscorlib],[System.Collections.Generic.HashSet`1[[System.String, mscorlib]], System.Core]]
        -> 0000021a49766460 System.Collections.Generic.HashSet`1[[System.String, mscorlib]]
        -> 00000219540976b0 System.Collections.Generic.HashSet`1+Slot[[System.String, mscorlib]][]
        -> 0000021bcbaf5158 System.String
    
    Found 1 unique roots (run '!GCRoot -all' to see all roots).
    

      

    !DumpObj /d 0000021975972b48 查看一个对象

    0:000> !DumpObj /d 0000021975972b48  //查看第一个JSONArray
    Name:        System.Object[]
    MethodTable: 00007ffdb9386fc0
    EEClass:     00007ffdb8d4aa00
    Size:        88(0x58) bytes
    Array:       Rank 1, Number of elements 8, Type CLASS (Print Array)
    Fields:
    None
    

      

    !DumpArray /d 0000021975972b48 查看一个数组

    0:000> !DumpArray /d 0000021975972b48 
    Name:        System.Object[]
    MethodTable: 00007ffdb9386fc0
    EEClass:     00007ffdb8d4aa00
    Size:        88(0x58) bytes
    Array:       Rank 1, Number of elements 8, Type CLASS
    Element Methodtable: 00007ffdb9386f28
    [0] 0000021975972a08
    [1] 0000021975972a70
    [2] 0000021975972a40
    [3] 0000021ac75e87b8
    [4] 0000021975972b10
    [5] 0000021975972ba0
    [6] null
    [7] null
    0:000> !DumpObj /d 0000021975972a08
    Name:        System.String
    MethodTable: 00007ffdb9386948
    EEClass:     00007ffdb8c850e0
    Size:        54(0x36) bytes
    File:        C:WindowsMicrosoft.NetassemblyGAC_64mscorlibv4.0_4.0.0.0__b77a5c561934e089mscorlib.dll
    String:      555d8ca25a6261
    Fields:7
                  MT    Field   Offset                 Type VT     Attr            Value Name
    00007ffdb9389288  400026f        8         System.Int32  1 instance               14 m_stringLength
    00007ffdb9387b00  4000270        c          System.Char  1 instance               35 m_firstChar
    00007ffdb9386948  4000274       90        System.String  0   shared           static Empty
                                     >> Domain:Value  00000218c6c4d220:NotInit  0000021d52d81840:NotInit  <<
    

      

  • 相关阅读:
    nginx 配置7层代理
    还用老套路分析财务数据?这3种财务分析方法,你一定得看看
    nginx 4层代理
    【手绘漫画】面试必考之手撕单链表(解题模板和深度剖析),(LeetCode 707)
    连载三:Oracle升级文档大全
    隐私保护与价值挖掘之利器
    PTA刷题笔记(C语言) | 7-42 整除光棍 (20分)
    django 页面缓存
    C++建议
    读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组
  • 原文地址:https://www.cnblogs.com/chenyishi/p/11718851.html
Copyright © 2011-2022 走看看