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个内存字节,也就是非静态的变量会占用对象的内存空间

  • 相关阅读:
    airtest-selenium
    window下使用Redis Cluster部署Redis集群
    调用webservice进行身份验证
    ETL数据从sqlserver到mysql之间迁移
    Sqlserver调用api
    EXCEL导入数据到SQLSERVER
    博客园开通的第一天
    Visual Studio 2017 离线安装包
    WPF学习笔记1---初接触
    Visual Studio 2008 + ObjectARX2012环境配置
  • 原文地址:https://www.cnblogs.com/Leung/p/1228735.html
Copyright © 2011-2022 走看看