不确定是否可能,但我很好奇,到目前为止我还没有找到任何运气。我想知道是否有人知道从VS监视窗口中确定内存中对象大小的方法。显然,一个分析器可以做到这一点,但只是从VS中获取这个快速快照是非常方便的。这可能吗?
答案 0 :(得分:3)
不确定这是否有助于其他人登陆此问题。
在VS2015中,您可以在断点处停下来并使用Diagnostic Tools
窗口。
Take Snapshot
Objects
或Heap Size
列HTH。
答案 1 :(得分:2)
我认为这是不可能的。请参阅Size of a managed object(相当旧,但似乎仍然有效)。
您可以在立即窗口中拥有对象大小。请参阅Find out the size of a .net object中的答案。
您可以在代码中编写一个函数(改编自上面的线程)并从watch中引用它。
Public Function GetSerializedSize(myObject As Object) As Long
Using ms As New IO.MemoryStream
Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
bf.Serialize(ms, myObject)
GetSerializedSize = ms.Position
End Using
End Function
然而,这不是精确的(我得到DatataTable值小2倍)也不方便(值必须手动刷新),但它给你一些线索。
答案 2 :(得分:0)
它不准确,但它是一个很好的猜测。