Parse(Unity SDK)是否会在每次设置值时分配内存?例如,Parse示例是:
ParseObject gameScore = new ParseObject("GameScore");
gameScore["score"] = 1337;
以下代码分配内存(在编辑器中为1.3KB,在设备上略小,约为0.6KB)。
gameScore["score"] = 1337;
虽然分配的内存很小,但是定期设置值(我们在游戏中执行的操作)会导致垃圾收集器被调用,从而导致帧速率出现明显的峰值。我尝试过对ParseObject进行子类化并通过SetProperty设置值,但这基本上就是上面的代码所做的,所以结果是一样的。
编辑:我正在使用Unity Profiler来测量这些值。请注意,数据类型似乎不会影响分配的内存量。
我设置了一个只有一个执行以下操作的脚本的空场景:
void Update ()
{
gameScore["score"] = 1337;
}
这是Unity Editor中该操作的结果。每一帧都会发生这种情况:
答案 0 :(得分:0)
也许您需要使用struct
而不是class
。 class
在堆上获取内存分配。