我编写了这段代码
using UnityEngine;
public class InstanceTest : MonoBehaviour {
public int cnt; public bool startTest1 = false; public bool startTest2 = false;
void Update()
{
if (startTest1)
Test1(cnt);
if (startTest2)
Test2(cnt);
}
void Test1(int cnt)
{
float a;
for (int i = 0; i < cnt; i++)
a = 1f + 1f;
}
static void Test2(int cnt)
{
float a;
for (int i = 0; i < cnt; i++)
a = 1f + 1f;
}
}
在Profiler上
为什么第一次调用Test1()和Test2()时Update()上的CPU时间会打ic?
答案 0 :(得分:1)
在第一次调用函数期间可能会发生一些JIT(Just In Time)编译。
第二次及之后的函数调用,它们的优化版本正在等待。