为什么这一小块代码消耗了97,868 k内存

时间:2013-07-08 14:44:18

标签: c# asp.net performance sharepoint

我有这么一小块代码,我无法理解为什么它会占用内存。

    static void Main(string[] args)
    {
        using (SPSite mySite = new SPSite("http://consotvo.internal.com/upi"))
        {
            using (SPWeb web = mySite.OpenWeb())
            {
                //foreach (SPFile file in web.Files[0])
                //    Console.WriteLine(file.Name);

                SPFile file = web.Files[0];

                using (SPLimitedWebPartManager manager = file.GetLimitedWebPartManager(PersonalizationScope.Shared))
                {
                    foreach (System.Web.UI.WebControls.WebParts.WebPart wb in manager.WebParts)
                    {
                        Console.WriteLine(wb.Title);


                        //wb.Dispose();
                        //manager.Web.Dispose();
                    }

                }
            }
        }
    }

即使在代码执行后,即使我还没有关闭控制台窗口,此代码也消耗 97,868 k 。我的问题是,我想打开3000个网站(不同的网址)并对网站 进行更改,但消耗的内存太多

更新

using (SPLimitedWebPartManager manager = file.GetLimitedWebPartManager(PersonalizationScope.Shared))

此行单独添加40,000 k

1 个答案:

答案 0 :(得分:2)

看起来你正在打开与站点的连接,然后它将下拉页面的源,并且所有这些源需要存储在某处,所以除非你将它分成文本文件或数据库,否则它是需要消耗与服务器发回的内存一样多的内存。