【发布时间】:2017-04-08 09:24:46
【问题描述】:
我目前正在使用我创建的游戏引擎设计一个 2D 游戏,并决定检查每一秒我使用了多少内存。
我目前有一个包含总共 4097 个游戏对象的游戏屏幕,每个对象至少包含一个每帧渲染到屏幕上的精灵(位图)。每个精灵都是一个 32x32 像素的图像。
我显然使用的结果 MB 大约是 1.10MB,这是否太多了,还是我做得还好?我还应该考虑哪些其他事项?
另外,只是为了表明,这是我检查我正在使用的内存量的方式:
double mb = MathHelper.ConvertBytesToMegabytes(GC.GetTotalMemory(true));
Console.WriteLine("Memory: " + mb);
以及“ConvertBytesToMegabytes”方法:
public static double ConvertBytesToMegabytes(long bytes)
{
return (bytes / 1024f) / 1024f;
}
【问题讨论】:
-
这.... 根本没有任何意义。请更具体地说明您想了解的内容以及您对哪些内存感兴趣。图像可能位于显卡内存中的某个位置,GC 不考虑这些图像。但是这个问题还不够具体,无法给出答案(至少我的看法)
-
我正在使用 GDI+,所以我不知道这是否有帮助。我只想知道我的内存使用限制应该是多少。
-
您的问题不清楚。您是否遇到 1MB 内存使用问题?尝试使用这种方法获取使用的内存量stackoverflow.com/a/750595/4767498
-
'WorkingSet64' 说 115mb,PrivateMemorySize64 说 109mb。
-
这看起来更真实,但它仍然不能解释你的实际问题是什么......你想知道如何测量内存(你去)或多少内存是合适的(a除非你列出每个涉及的库、工具、文件......)或完全不同的东西,否则无用的问题?
标签: c# memory memory-management game-engine