zoukankan      html  css  js  c++  java
  • 关于C#对象内存占用的试验

    在对象中通常我们有时会用静态成员,或静态方法,有人说静态方法在应用程序一启动后就会加载到内存中去,这样会加快程序的运行,到底它占不占用对象的内存呢,来分析下
    对象
    [Serializable]
    public class UserInfo
    {
    }
    测试方法
    UserInfo user = new UserInfo();
    MemoryStream ms = new MemoryStream();
    BinaryFormatter formatter = new BinaryFormatter();
    formatter.Serialize(ms,user);
    ms.Position = 0;
    Console.Write(ms.Length);
    一个没有内容的对象,它占用内存的大小为118个字节
    在对象类中加入两个静态成员
    static int a = 0;
    static int b=1;
    执行测试后发现还是占用118个字节,说明静态成员不占用对象的内存空间
    在对象类中加入二个静态方法
    public static void Get()
    {
    }
    public static string getStr()
    {
     return "";
    }
    运行测试程序发现还是占用118个字节,说明静态方法也不占用对象的内存
    如果把static的方法改成非静态的方法,运行测试程序后发现还是占用118个字节,说明非静态方法类也不占用对象的内存空间.
    但是当我在对象类中定义二个非静态成员
    int aa =0;
    string str = "ddd";
    运行测试后,发现占用了141个内存字节,也就是非静态的变量会占用对象的内存空间

  • 相关阅读:
    mysql基本操作
    http基础
    react进阶第一讲jsx
    react进阶第二讲——component
    WC2020游记
    数据库实验小结 Resource Manager
    latex 常用小结
    编程之美2013资格赛 水结
    百度电影推荐系统比赛 小结 ——记我的初步推荐算法实践
    10.10作业
  • 原文地址:https://www.cnblogs.com/Leung/p/1228735.html
Copyright © 2011-2022 走看看