相关疑难解决方法(0)

C#/ XNA - 将对象加载到内存 - 它是如何工作的?

我从C#和XNA开始.在"Game"类的"Update"方法中,我有以下代码:

t = Texture2D.FromFile( [...] ); //t is a 'Texture2D t;'
Run Code Online (Sandbox Code Playgroud)

加载小图像."Update"方法的工作方式类似于循环,因此这段代码会在一秒钟内多次调用.现在,当我运行我的游戏时,它需要95MB的内存并且缓慢增加到大约130MB(由于我发布的代码,没有这个代码,它仍然保持在95MB),然后立即进入大约100MB(garbare集合?)并再次缓慢到130MB,然后立即到100MB,依此类推.所以我的第一个问题:

  1. 你能解释为什么(怎么样)它的作用?

我发现,如果我将代码更改为:

t.Dispose()
t = Texture2D.FromFile( [...] );
Run Code Online (Sandbox Code Playgroud)

它的工作方式是这样的:首先它需要95MB然后缓慢到大约101MB(由于代码)并保持在这个级别.

  1. 我不明白为什么需要这个6MB(101-95)...?

  2. 我想让它像这样工作:加载图像,从内存释放,加载图像,从内存释放等等,所以程序应该总是需要95MB(在以前的方法中只加载一次图像需要95MB).我应该使用什么说明书?

如果重要,图像的大小约为10KB.

谢谢!

c# memory xna

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

C#/ XNA巨型内存泄漏

这是我在此的头一篇博文.我正在使用XNA在Visual Studio 2010中制作游戏,而且我遇到了巨大的内存泄漏.我的游戏开始使用17k ram,然后在十分钟之后达到65k.我运行了一些内存分析器,他们都说正在创建String对象的新实例,但它们不是实时的.String的实时实例数量根本没有变化.它还创建了Char [](我期待它),Object []和StringBuilder的实例.我的游戏很新,但是这里发布的代码太多了.我不知道如何摆脱不活的实例,请帮忙!

c# xna memory-leaks

3
推荐指数
1
解决办法
1423
查看次数

标签 统计

c# ×2

xna ×2

memory ×1

memory-leaks ×1