新足迹

 找回密码
 注册

精华好帖回顾

· === Brae,与美味重逢 === (2015-4-5) 胡须康 · Lanshan: 又一个大快人口的面包--花生杏仁酱面包 (2012-12-4) lanshan
· 怀旧老电影系列之一 --- 反特电影篇 (2008-11-2) zmzhu · 2014年从中亚流浪到高加索的50天(全文完) (2015-4-6) patpatchow
Advertisement
Advertisement
12
返回列表 发新帖
楼主:dalaohu

等于几? [复制链接]

头像被屏蔽

禁止发言

发表于 2011-2-2 14:09 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-2 13:58 发表
题6

employee.xml 100M 大。

var xml1 = XDocument.Load("employee.xml");
xml1 = null;

此时,内存占用多少?


i guess 0

评分

参与人数 1积分 +1 收起 理由
dalaohu + 1 错!

查看全部评分

签名被屏蔽
Advertisement
Advertisement

发表于 2011-2-2 14:33 |显示全部楼层
此文章由 pengruijun 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pengruijun 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2011-2-2 14:09 发表


i guess 0

那就是 100M 喽
xml 占着呢
头像被屏蔽

禁止发言

发表于 2011-2-2 14:38 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 pengruijun 于 2011-2-2 14:33 发表

那就是 100M 喽
xml 占着呢

应该是 XmlReader 占着呢
签名被屏蔽

发表于 2011-2-2 17:36 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-2 13:58 发表
题6

employee.xml 100M 大。

var xml1 = XDocument.Load("employee.xml");
xml1 = null;

此时,内存占用多少?


这时的内存占用超过100m,
1.emlpyee.xml 100m, load到memory应该超过100M,还有些memory 管理的info.
2.xml1一般不需要explicitly set to null,除了它的scope,它自然为null
3.好象过了85k(数字机不清楚了)的object,gc的gen0不能claim它,要等到gen2才行.

[ 本帖最后由 乱码 于 2011-2-2 17:39 编辑 ]
头像被屏蔽

禁止发言

发表于 2011-2-3 10:50 |显示全部楼层

答案呢?

此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2011-2-3 12:39 |显示全部楼层
此文章由 uowzd01 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 uowzd01 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对于.net程序员来说,开始玩内存是一个向高手进军的里程碑
Advertisement
Advertisement

发表于 2011-2-3 16:16 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
哦,是.net啊,我以java的思维在判断呢
不过应该差不多吧

发表于 2011-2-3 16:46 |显示全部楼层
此文章由 findcaiyzh 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 findcaiyzh 所有!转贴必须注明作者、出处和本声明,并保持内容完整
期待答案。

发表于 2011-2-5 17:36 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
i guess 0


在PHP我就刚刚遇见这个问题。 x = null 清了x,但是内存本身没有被清/解放,结果到最后超过server内定的32M上限,voilation error出来了。。。

发表于 2011-2-5 22:39 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
除非手动作object memory deallocation,一般通过set variable 为null,让framework去做Garbage collection的,都不能立即触发gc的过程。这个variale出了scope,做指的那部分memory自然就没其他的东西在reference,可以变为gc的candidate,除非指的很乱。

如果在set null之后和出scope之前,gc开始工作了,这个set null的才有效,但通常没有这么巧,这也是不能指望的小概率事件。

结论是:你可以set null,但别指望gc里马给回收。还不如省了这一步。
头像被屏蔽

禁止发言

发表于 2011-2-14 12:11 |显示全部楼层

答案呢?

此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Advertisement
Advertisement

发表于 2011-2-14 12:29 |显示全部楼层
此文章由 TuLaLa 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 TuLaLa 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-2-2 13:36 发表
题5

public class Employee
    {
        public int Salary { get; set; }
    }

    public class EmployeeService
    {
        public void AddSalary(Employee emp)
        {
            emp = null;
    ...


Salary = 50.

Even though Employee is a reference type, when it was passed to AddSalary(), a copy of the object is passed to the method. That copy was set to null and wouldn't affect the actual emp object.

If we assume, GC acted immediatly after  AddSalary, then the memory should be 1M, otherwise 2M.

发表于 2011-2-14 13:32 |显示全部楼层
此文章由 cigmm 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cigmm 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Q2:
A: still 1M

发表于 2011-2-14 16:02 |显示全部楼层
此文章由 bullying520 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bullying520 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没答案分析啊.....

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部