相关疑难解决方法(0)

使用C#获取字段大小(以字节为单位)

我有一个类,我想检查它的字段并最终报告每个字段占用的字节数.我假设所有字段都是Int32,byte等类型.

如何轻松找出该字段占用的字节数?

我需要这样的东西:

Int32 a;
// int a_size = a.GetSizeInBytes;
// a_size should be 4
Run Code Online (Sandbox Code Playgroud)

c# reflection byte

60
推荐指数
6
解决办法
5万
查看次数

sizeof()等价于引用类型?

我正在寻找一种方法来获取引用类型的实例的大小.sizeof仅适用于值类型.这可能吗?

.net c#

20
推荐指数
2
解决办法
1万
查看次数

加载SOS扩展以进行调试

我正在尝试在vb.net应用程序中加载Visual Studio 2010(.Net framework 4)中的SOS扩展,但没有成功.

首先,我发现以下文章建议我在immidiate窗口中键入"!load sos ".它导致以下错误消息:

Error during command: extension C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll could not load (error 193)
Run Code Online (Sandbox Code Playgroud)

接下来我发现了一篇建议.loadby sos clr文章.这给了我以下错误:

Method arguments must be enclosed in parentheses.
Run Code Online (Sandbox Code Playgroud)

我该如何加载它?

.net debugging memory-leaks

16
推荐指数
1
解决办法
5834
查看次数

在序列化为JSON时获取OutOfMemoryException?

我正在序列化,一个 MultiDictionary<String,Object>

http://powercollections.codeplex.com/给json.

它有618个元素,其中元素是深层嵌套的,即单个Object可能有几个类似于字典的对象.我正在使用JSON.Net

String json = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented);
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

更多信息: - 这是正常工作,直到我使用动态,我不得不切换到MultiDictionary允许同名的多个属性.它适用于大多数情况,只有当项目数量很大时才会中断.

更新: -

我已经能够控制内存消耗,但减少了一些递归添加到每个元素的元素.

c# serialization json json.net

12
推荐指数
2
解决办法
2万
查看次数

Visual Studio观察窗口查看对象的大小/内存占用

不确定是否可能,但我很好奇,到目前为止我还没有找到任何运气.我想知道是否有人知道从VS监视窗口中确定内存中对象大小的方法.显然,一个分析器可以做到这一点,但只是从VS中获取这个快速快照是非常方便的.这可能吗?

.net memory visual-studio-2010 visual-studio

11
推荐指数
2
解决办法
8306
查看次数

如何测量单个对象在.NET中占用的内存量

我不知道是否有在C#/.NET和/或Visual Studio一个简单的命令或指令:能告诉我有多少内存的单个对象是占用了?我有一个鬼鬼祟祟的怀疑,的sizeof()运算符是要骗我...我在这个信念是否合理?

有一个有点相关的问题在这里,但没有明确的答案是如何衡量的单个对象给出

.net c# profiling memory-management

9
推荐指数
1
解决办法
4859
查看次数

有没有一种简单的方法来确定C#中的类型大小?

有没有办法说出类似的话:

的sizeof(类型)?还是打字.大小?

现在我正在使用如下代码:

if (type.Equals(typeof(int)))
    return sizeof(int);
else if (type.Equals(typeof(long)))
    return sizeof(long);
Run Code Online (Sandbox Code Playgroud)

等等,适用于每种数据类型.

必须有一个更清洁的解决方案,不是吗?

c#

7
推荐指数
1
解决办法
1万
查看次数

为什么我班上的内存占用了这么多空间?

我将拥有一些MyClass类的数千万个实例,并希望最小化其内存大小.在查找.net对象的大小时讨论了测量对象在内存中占用多少空间的问题 我决定遵循Jon Skeet的建议,这是我的代码:

   // Edit: This line is "dangerous and foolish" :-) 
   // (However, commenting it does not change the result)
   // [StructLayout(LayoutKind.Sequential, Pack = 1)]
   public class MyClass       
   {
      public bool isit;
      public MyClass nextRight;
      public MyClass nextDown;
   }

   class Program
   {
      static void Main(string[] args)
      {
         var a1 = new MyClass(); //to prevent JIT code mangling the result (Skeet)
         var before = GC.GetTotalMemory(true);   
         MyClass[] arr = new MyClass[10000];
         for (int i = 0; i < 10000; …
Run Code Online (Sandbox Code Playgroud)

c# memory-management

7
推荐指数
2
解决办法
1099
查看次数

如何在HttpRuntime.Cache中获取对象的大小?

我目前在ASP.NET HttpRuntime.Cache中存储了许多不同类型的对象,我想知道是否有办法弄清楚每个对象有多大?

c# asp.net caching httpruntime.cache

5
推荐指数
1
解决办法
4632
查看次数

.NET对象大小

.net中堆分配对象的大小是多少,包括管理开销?我假设对象是沿着4字节边界分配的,还是使用了不同的方法?

.net c# memory memory-management

5
推荐指数
1
解决办法
1890
查看次数

我的类使用了多少内存实例 - 务实的答案

  1. 调用构造函数后,以下类的实例有多大?我想这通常可以写为 size = nx + c,其中 x86 中 x = 4,x64 中 x = 8。n = ? c = ?
  2. .NET 中是否有某种方法可以返回这个数字?

class Node { byte[][] a; int[] b; List<Node> c; public Node() { a = new byte[3][]; b = new int[3]; c = new List<Node>(0); } }

.net c# memory-management micro-optimization

5
推荐指数
1
解决办法
1895
查看次数