上回说了Viewstate,为什么会用到那么多Viewstate呢,与这回要说的Table大有关系,注意,此Table乃System.Web.UI.WebControls.Table,服务器端控件,非HTML的<table>。
此篇涉及以下对象
0x04428964 1 100 System.Web.UI.WebControls.Table
0x0442a52c 1 28 System.Web.UI.WebControls.Table/RowControlCollection
0x04429b3c 1 12 System.Web.UI.WebControls.TableRowCollection
0x04429094 23,170 2,317,000 System.Web.UI.WebControls.TableRow
0x044297f4 23,170 278,040 System.Web.UI.WebControls.TableCellCollection
0x0442a45c 23,170 648,760 System.Web.UI.WebControls.TableRow/CellControlCollection
0x044293b4 509,740 48,935,040 System.Web.UI.WebControls.TableCell
0x040c4b64 509,744 14,272,832 System.Web.UI.ControlCollection
0x0442a334 509,740 20,389,600 System.Web.UI.WebControls.TableItemStyle
0x040c3f14 509,761 38,741,836 System.Web.UI.LiteralControl
0x0442252c 509,744 6,116,928 System.Web.UI.WebControls.FontInfo
0x04428c9c 517,396 6,208,752 System.Web.UI.WebControls.HorizontalAlign
先从System.Web.UI.WebControls.Table开始解剖。
0:000> !dumpheap -mt 0x04428964
Loading the heap objects into our cache.
Address MT Size Gen
0x01630780 0x04428964 100 2 System.Web.UI.WebControls.Table
0:000> !dumpobj 0x01630780
Name: System.Web.UI.WebControls.Table
MethodTable 0x04428964
EEClass 0x042f8450
Size 100(0x64) bytes
GC Generation: 2
mdToken: 0x02000226 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x044287d8
MT Field Offset Type Attr Value Name
0x03cf0784 0x4000b48 0x4 CLASS instance 0x00000000 _dataBindings
0x03cf0784 0x4000b49 0x8 CLASS instance 0x01630754 _id (String)
0x03cf0784 0x4000b4a 0xc CLASS instance 0x01630754 _cachedUniqueID
0x03cf0784 0x4000b4b 0x10 CLASS instance 0x01630020 _parent (System.Web.UI.HtmlControls.HtmlForm)
0x03cf0784 0x4000b4c 0x14 CLASS instance 0x00000000 _site
0x03cf0784 0x4000b4d 0x18 CLASS instance 0x00000000 _events
0x03cf0784 0x4000b4e 0x1c CLASS instance 0x04c1cbcc _controls
0x03cf0784 0x4000b4f 0x38 System.Int32 instance 5 _controlState
0x03cf0784 0x4000b50 0x20 CLASS instance 0x00000000 _renderMethod
0x03cf0784 0x4000b51 0x24 CLASS instance 0x0163080c _viewState (System.Web.UI.StateBag)
0x03cf0784 0x4000b52 0x28 CLASS instance 0x00000000 _controlsViewState
0x03cf0784 0x4000b53 0x2c CLASS instance 0x00000000 _namedControls
0x03cf0784 0x4000b54 0x3c System.Int32 instance 0 _namedControlsID
0x03cf0784 0x4000b55 0x30 CLASS instance 0x0162f36c _namingContainer
0x03cf0784 0x4000b56 0x34 CLASS instance 0x0162f36c _page
0x03cf0784 0x4000b57 0x40 VALUETYPE instance start at 016307c0 flags
0x03cf0784 0x4000b42 0 CLASS shared static EventDataBinding
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c670 <<
0x03cf0784 0x4000b43 0x4 CLASS shared static EventInit
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c67c <<
0x03cf0784 0x4000b44 0x8 CLASS shared static EventLoad
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c688 <<
0x03cf0784 0x4000b45 0xc CLASS shared static EventUnload
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c694 <<
0x03cf0784 0x4000b46 0x10 CLASS shared static EventPreRender
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6a0 <<
0x03cf0784 0x4000b47 0x14 CLASS shared static EventDisposed
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6ac <<
0x03cf0784 0x4000b58 0x18 CLASS shared static automaticIDs
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6b8 <<
0x040c50d8 0x4000e42 0x44 CLASS instance 0x00000000 tagName
0x040c50d8 0x4000e43 0x54 System.Int32 instance 82 tagKey
0x040c50d8 0x4000e44 0x48 CLASS instance 0x00000000 attrColl
0x040c50d8 0x4000e45 0x4c CLASS instance 0x00000000 attrState
0x040c50d8 0x4000e46 0x50 CLASS instance 0x016307e4 controlStyle
0x040c50d8 0x4000e47 0x58 VALUETYPE instance start at 016307d8 flags
0x04428964 0x4000f0d 0x5c CLASS instance 0x04c1cbc0 rows
0:000> !do 0x04c1cbc0
Name: System.Web.UI.WebControls.TableRowCollection
MethodTable 0x04429b3c
EEClass 0x042f8780
Size 12(0xc) bytes
GC Generation: 2
mdToken: 0x02000275 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x044298f0
MT Field Offset Type Attr Value Name
0x04429b3c 0x4000fe3 0x4 CLASS instance 0x01630780 owner
就一个属性owner,指向的就是Table对象。
那是哪个属性保存了row的集合呢,只剩下_controls属性了。
0:000> !do 0x04c1cbcc
Name: System.Web.UI.WebControls.Table/RowControlCollection
MethodTable 0x0442a52c
EEClass 0x042f8d54
Size 28(0x1c) bytes
GC Generation: 2
mdToken: 0x02000227 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x00000000
MT Field Offset Type Attr Value Name
0x040c4b64 0x4000b5d 0x4 CLASS instance 0x01630780 _owner (System.Web.UI.WebControls.Table)
0x040c4b64 0x4000b5e 0x8 CLASS instance 0x02996d18 _controls (System.Object[])
0x040c4b64 0x4000b5f 0x10 System.Int32 instance 23170 _size
0x040c4b64 0x4000b60 0x14 System.Int32 instance 23170 _version
0x040c4b64 0x4000b61 0xc CLASS instance 0x00000000 _readOnlyErrorMsg
0:000> dd 0x02996d18
02996d18 011d209c 00014000 03cf0784 04c1a7dc
02996d28 04c1cd58 04c1f5bc 04c21e00 04c24644
02996d38 04c26e88 04c296cc 04c2bf10 04c2e754
02996d48 04c30f98 04c337dc 04c36020 04c38864
02996d58 04c3b0a8 04c3d8ec 04c40130 04c42974
02996d68 04c451b8 04c479fc 04c4a244 04c4ca88
02996d78 04c4f2cc 04c51b10 04c54354 04c56b98
02996d88 04c593dc 04c5bc20 04c5e464 04c60ca8
这个数组的容量是81920个object,实际只用了23170个,不小的浪费呢。继续查看是个什么object
0:000> !dumpmt 03cf0784
EEClass : 0x03ca5214
Module : 0x001d5638
Name: System.Web.UI.Control
mdToken: 0x02000162 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
BaseSize: 0x48
MethodTable Flags : 0x2040000
Number of IFaces in IFaceMap : 0x4
Interface Map : 0x03cf095c
Slots in VTable : 100
0:000> !do 04c1a7dc
Name: System.Web.UI.WebControls.TableRow
MethodTable 0x04429094
EEClass 0x042f8654
Size 100(0x64) bytes
GC Generation: 2
mdToken: 0x02000217 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x04428fd8
MT Field Offset Type Attr Value Name
0x03cf0784 0x4000b48 0x4 CLASS instance 0x00000000 _dataBindings
0x03cf0784 0x4000b49 0x8 CLASS instance 0x00000000 _id
0x03cf0784 0x4000b4a 0xc CLASS instance 0x00000000 _cachedUniqueID
0x03cf0784 0x4000b4b 0x10 CLASS instance 0x01630780 _parent (System.Web.UI.WebControls.Table)
0x03cf0784 0x4000b4c 0x14 CLASS instance 0x00000000 _site
0x03cf0784 0x4000b4d 0x18 CLASS instance 0x00000000 _events
0x03cf0784 0x4000b4e 0x1c CLASS instance 0x04c1a9cc _controls
0x03cf0784 0x4000b4f 0x38 System.Int32 instance 5 _controlState
0x03cf0784 0x4000b50 0x20 CLASS instance 0x00000000 _renderMethod
0x03cf0784 0x4000b51 0x24 CLASS instance 0x00000000 _viewState
0x03cf0784 0x4000b52 0x28 CLASS instance 0x00000000 _controlsViewState
0x03cf0784 0x4000b53 0x2c CLASS instance 0x00000000 _namedControls
0x03cf0784 0x4000b54 0x3c System.Int32 instance 0 _namedControlsID
0x03cf0784 0x4000b55 0x30 CLASS instance 0x0162f36c _namingContainer
0x03cf0784 0x4000b56 0x34 CLASS instance 0x0162f36c _page
0x03cf0784 0x4000b57 0x40 VALUETYPE instance start at 04c1a81c flags
0x03cf0784 0x4000b42 0 CLASS shared static EventDataBinding
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c670 <<
0x03cf0784 0x4000b43 0x4 CLASS shared static EventInit
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c67c <<
0x03cf0784 0x4000b44 0x8 CLASS shared static EventLoad
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c688 <<
0x03cf0784 0x4000b45 0xc CLASS shared static EventUnload
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c694 <<
0x03cf0784 0x4000b46 0x10 CLASS shared static EventPreRender
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6a0 <<
0x03cf0784 0x4000b47 0x14 CLASS shared static EventDisposed
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6ac <<
0x03cf0784 0x4000b58 0x18 CLASS shared static automaticIDs
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6b8 <<
0x040c50d8 0x4000e42 0x44 CLASS instance 0x00000000 tagName
0x040c50d8 0x4000e43 0x54 System.Int32 instance 90 tagKey
0x040c50d8 0x4000e44 0x48 CLASS instance 0x00000000 attrColl
0x040c50d8 0x4000e45 0x4c CLASS instance 0x00000000 attrState
0x040c50d8 0x4000e46 0x50 CLASS instance 0x00000000 controlStyle
0x040c50d8 0x4000e47 0x58 VALUETYPE instance start at 04c1a834 flags
0x04429094 0x4000edf 0x5c CLASS instance 0x04c1a9c0 cells
和之前一样,cell属性里只有一个指向TableRow的owner属性
0:000> !do 0x04c1a9c0
Name: System.Web.UI.WebControls.TableCellCollection
MethodTable 0x044297f4
EEClass 0x042f871c
Size 12(0xc) bytes
GC Generation: 2
mdToken: 0x02000273 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x044295ac
MT Field Offset Type Attr Value Name
0x044297f4 0x4000fe2 0x4 CLASS instance 0x04c1a7dc owner (System.Web.UI.WebControls.TableRow)
老样子,看_controls属性
0:000> !do 0x04c1a9cc
Name: System.Web.UI.WebControls.TableRow/CellControlCollection
MethodTable 0x0442a45c
EEClass 0x042f8c3c
Size 28(0x1c) bytes
GC Generation: 2
mdToken: 0x02000218 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x00000000
MT Field Offset Type Attr Value Name
0x040c4b64 0x4000b5d 0x4 CLASS instance 0x04c1a7dc _owner (System.Web.UI.WebControls.TableRow)
0x040c4b64 0x4000b5e 0x8 CLASS instance 0x04c1c858 _controls (System.Object[])
0x040c4b64 0x4000b5f 0x10 System.Int32 instance 22 _size
0x040c4b64 0x4000b60 0x14 System.Int32 instance 22 _version
0x040c4b64 0x4000b61 0xc CLASS instance 0x00000000 _readOnlyErrorMsg
0:000> dd 0x04c1c858
04c1c858 011d209c 00000050 03cf0784 04c1a840
04c1c868 04c1aa58 04c1abd8 04c1ad58 04c1aed8
04c1c878 04c1b058 04c1b1d8 04c1b358 04c1b4d8
04c1c888 04c1b658 04c1b7d8 04c1b958 04c1bad8
04c1c898 04c1bc58 04c1bdd8 04c1bf58 04c1c0d8
04c1c8a8 04c1c258 04c1c3d8 04c1c558 04c1c6d8
04c1c8b8 04c1c9a8 00000000 00000000 00000000
04c1c8c8 00000000 00000000 00000000 00000000
80的容量只用到22个,考虑到有23,170个这样的,那就浪费了23170*(80-22)*4bytes=5.1M的内存
0:000> !dumpmt 03cf0784
EEClass : 0x03ca5214
Module : 0x001d5638
Name: System.Web.UI.Control
mdToken: 0x02000162 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
BaseSize: 0x48
MethodTable Flags : 0x2040000
Number of IFaces in IFaceMap : 0x4
Interface Map : 0x03cf095c
Slots in VTable : 100
0:000> !do 04c1a840
Name: System.Web.UI.WebControls.TableCell
MethodTable 0x044293b4
EEClass 0x042f86b8
Size 96(0x60) bytes
GC Generation: 2
mdToken: 0x02000272 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x00000000
MT Field Offset Type Attr Value Name
0x03cf0784 0x4000b48 0x4 CLASS instance 0x00000000 _dataBindings
0x03cf0784 0x4000b49 0x8 CLASS instance 0x00000000 _id
0x03cf0784 0x4000b4a 0xc CLASS instance 0x00000000 _cachedUniqueID
0x03cf0784 0x4000b4b 0x10 CLASS instance 0x04c1a7dc _parent (System.Web.UI.WebControls.TableRow)
0x03cf0784 0x4000b4c 0x14 CLASS instance 0x00000000 _site
0x03cf0784 0x4000b4d 0x18 CLASS instance 0x00000000 _events
0x03cf0784 0x4000b4e 0x1c CLASS instance 0x04c1a934 _controls
0x03cf0784 0x4000b4f 0x38 System.Int32 instance 5 _controlState
0x03cf0784 0x4000b50 0x20 CLASS instance 0x00000000 _renderMethod
0x03cf0784 0x4000b51 0x24 CLASS instance 0x04c1a8c8 _viewState (System.Web.UI.StateBag)
0x03cf0784 0x4000b52 0x28 CLASS instance 0x00000000 _controlsViewState
0x03cf0784 0x4000b53 0x2c CLASS instance 0x00000000 _namedControls
0x03cf0784 0x4000b54 0x3c System.Int32 instance 0 _namedControlsID
0x03cf0784 0x4000b55 0x30 CLASS instance 0x0162f36c _namingContainer
0x03cf0784 0x4000b56 0x34 CLASS instance 0x0162f36c _page
0x03cf0784 0x4000b57 0x40 VALUETYPE instance start at 04c1a880 flags
0x03cf0784 0x4000b42 0 CLASS shared static EventDataBinding
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c670 <<
0x03cf0784 0x4000b43 0x4 CLASS shared static EventInit
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c67c <<
0x03cf0784 0x4000b44 0x8 CLASS shared static EventLoad
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c688 <<
0x03cf0784 0x4000b45 0xc CLASS shared static EventUnload
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c694 <<
0x03cf0784 0x4000b46 0x10 CLASS shared static EventPreRender
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6a0 <<
0x03cf0784 0x4000b47 0x14 CLASS shared static EventDisposed
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6ac <<
0x03cf0784 0x4000b58 0x18 CLASS shared static automaticIDs
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6b8 <<
0x040c50d8 0x4000e42 0x44 CLASS instance 0x00000000 tagName
0x040c50d8 0x4000e43 0x54 System.Int32 instance 84 tagKey
0x040c50d8 0x4000e44 0x48 CLASS instance 0x00000000 attrColl
0x040c50d8 0x4000e45 0x4c CLASS instance 0x00000000 attrState
0x040c50d8 0x4000e46 0x50 CLASS instance 0x04c1a8a0 controlStyle
0x040c50d8 0x4000e47 0x58 VALUETYPE instance start at 04c1a898 flags
先看看controlStyle
0:000> !do 0x04c1a8a0
Name: System.Web.UI.WebControls.TableItemStyle
MethodTable 0x0442a334
EEClass 0x042f8ba8
Size 40(0x28) bytes
GC Generation: 2
mdToken: 0x02000222 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x00000000
MT Field Offset Type Attr Value Name
0x79b97904 0x40000b6 0x4 CLASS instance 0x00000000 __identity
0x03cf5894 0x4000503 0x8 CLASS instance 0x00000000 site
0x03cf5894 0x4000504 0xc CLASS instance 0x00000000 events
0x03cf5894 0x4000502 0 CLASS shared static EventDisposed
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155d604 <<
0x040c737c 0x4000efb 0x10 CLASS instance 0x04c1a8c8 statebag
0x040c737c 0x4000efc 0x14 CLASS instance 0x153215d4 fontInfo
0x040c737c 0x4000efd 0x20 System.Boolean instance 0 ownStateBag
0x040c737c 0x4000efe 0x21 System.Boolean instance 1 marked
0x040c737c 0x4000eff 0x18 System.Int32 instance 65536 setBits
0x040c737c 0x4000f00 0x1c System.Int32 instance 0 markedBits
0:000> !do 0x153215d4
Name: System.Web.UI.WebControls.FontInfo
MethodTable 0x0442252c
EEClass 0x042f28cc
Size 12(0xc) bytes
GC Generation: 2
mdToken: 0x0200023a (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x04422390
MT Field Offset Type Attr Value Name
0x0442252c 0x4000f46 0x4 CLASS instance 0x04c1a8a0 owner
FontInfo里居然只有指向TableItemStyle的owner属性,style信息存放在TableItemStyle的statebag属性了,注意了,TableItemStyle的statebag和TableCell 的_viewState指向的是同一个内存区域,一回事。
再接着看 TableCell 的_controls
0:000> !do 0x04c1a934
Name: System.Web.UI.ControlCollection
MethodTable 0x040c4b64
EEClass 0x040f16b8
Size 28(0x1c) bytes
GC Generation: 2
mdToken: 0x02000164 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x040c49f8
MT Field Offset Type Attr Value Name
0x040c4b64 0x4000b5d 0x4 CLASS instance 0x04c1a840 _owner
0x040c4b64 0x4000b5e 0x8 CLASS instance 0x04c1a99c _controls
0x040c4b64 0x4000b5f 0x10 System.Int32 instance 1 _size
0x040c4b64 0x4000b60 0x14 System.Int32 instance 1 _version
0x040c4b64 0x4000b61 0xc CLASS instance 0x00000000 _readOnlyErrorMsg
0:000> !do 0x04c1a99c
Name: System.Object[]
MethodTable 0x011d209c
EEClass 0x011d2018
Size 36(0x24) bytes
GC Generation: 2
Array: Rank 1, Type CLASS
Element Type: System.Object
Content: 5 items
0:000> dd 0x04c1a99c
04c1a99c 011d209c 00000005 03cf0784 04c1a950
04c1a9ac 00000000 00000000 00000000 00000000
04c1a9bc 00000000 044297f4 04c1a7dc 00000000
04c1a9cc 0442a45c 04c1a7dc 04c1c858 00000000
04c1a9dc 00000016 00000016 80000000 79b946b0
04c1a9ec 0000001d 0000001c 00610043 006e006e
04c1a9fc 0074006f 0048005f 00760061 005f0065
04c1aa0c 00680043 006c0069 00720064 006e0065
0:000> !dumpmt 03cf0784
EEClass : 0x03ca5214
Module : 0x001d5638
Name: System.Web.UI.Control
mdToken: 0x02000162 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
BaseSize: 0x48
MethodTable Flags : 0x2040000
Number of IFaces in IFaceMap : 0x4
Interface Map : 0x03cf095c
Slots in VTable : 100
0:000> !do 04c1a950
Name: System.Web.UI.LiteralControl
MethodTable 0x040c3f14
EEClass 0x040f1494
Size 76(0x4c) bytes
GC Generation: 2
mdToken: 0x02000191 (c:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll)
FieldDesc*: 0x040c3e80
MT Field Offset Type Attr Value Name
0x03cf0784 0x4000b48 0x4 CLASS instance 0x00000000 _dataBindings
0x03cf0784 0x4000b49 0x8 CLASS instance 0x00000000 _id
0x03cf0784 0x4000b4a 0xc CLASS instance 0x00000000 _cachedUniqueID
0x03cf0784 0x4000b4b 0x10 CLASS instance 0x04c1a840 _parent
0x03cf0784 0x4000b4c 0x14 CLASS instance 0x00000000 _site
0x03cf0784 0x4000b4d 0x18 CLASS instance 0x00000000 _events
0x03cf0784 0x4000b4e 0x1c CLASS instance 0x00000000 _controls
0x03cf0784 0x4000b4f 0x38 System.Int32 instance 5 _controlState
0x03cf0784 0x4000b50 0x20 CLASS instance 0x00000000 _renderMethod
0x03cf0784 0x4000b51 0x24 CLASS instance 0x00000000 _viewState
0x03cf0784 0x4000b52 0x28 CLASS instance 0x00000000 _controlsViewState
0x03cf0784 0x4000b53 0x2c CLASS instance 0x00000000 _namedControls
0x03cf0784 0x4000b54 0x3c System.Int32 instance 0 _namedControlsID
0x03cf0784 0x4000b55 0x30 CLASS instance 0x0162f36c _namingContainer
0x03cf0784 0x4000b56 0x34 CLASS instance 0x0162f36c _page
0x03cf0784 0x4000b57 0x40 VALUETYPE instance start at 04c1a990 flags
0x03cf0784 0x4000b42 0 CLASS shared static EventDataBinding
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c670 <<
0x03cf0784 0x4000b43 0x4 CLASS shared static EventInit
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c67c <<
0x03cf0784 0x4000b44 0x8 CLASS shared static EventLoad
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c688 <<
0x03cf0784 0x4000b45 0xc CLASS shared static EventUnload
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c694 <<
0x03cf0784 0x4000b46 0x10 CLASS shared static EventPreRender
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6a0 <<
0x03cf0784 0x4000b47 0x14 CLASS shared static EventDisposed
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6ac <<
0x03cf0784 0x4000b58 0x18 CLASS shared static automaticIDs
>> Domain:Value 0x00155980:NotInit 0x00193830:0x0155c6b8 <<
0x040c3f14 0x4000c7c 0x44 CLASS instance 0x01630e5c _text
解剖工作至此告一段落。为了这509,740个数据项,消耗了254M左右的内存在Table控件(viewstate)上,而托管堆上的对象总共也就303M。