Unity3d, C#
gameObject.SendMessage("doTestCall"); vs tpb.doTestCall();
Case 1:
Debug.Log("Benchmarking 100000 direct vs. 100000 indirect calls.");
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
gameObject.SendMessage("doTestCall");
}
Debug.Log("SendMessage took " + (Time.realtimeSinceStartup - startTime).ToString());
startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
TerrainPrefabBrain tpb = gameObject.GetComponent<TerrainPrefabBrain>();
tpb.doTestCall();
}
Debug.Log("Realtime took " + (Time.realtimeSinceStartup - startTime).ToString());
Result case 1:
// SendMessage took 0.05875015
// Realtime took 0.1102734
Case 2:
Debug.Log("Benchmarking 100000 direct vs. 100000 indirect calls.");
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
gameObject.SendMessage("doTestCall");
}
Debug.Log("SendMessage took " + (Time.realtimeSinceStartup - startTime).ToString());
startTime = Time.realtimeSinceStartup;
TerrainPrefabBrain tpb = gameObject.GetComponent<TerrainPrefabBrain>();
for (int i = 0; i < 100000; i++)
{
tpb.doTestCall();
}
Debug.Log("Realtime took " + (Time.realtimeSinceStartup - startTime).ToString());
Result case 2:
// SendMessage took 0.0526247
// Realtime took 0.0009641647
gameObject.SendMessage("doTestCall"); vs tpb.doTestCall();
Case 1:
Debug.Log("Benchmarking 100000 direct vs. 100000 indirect calls.");
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
gameObject.SendMessage("doTestCall");
}
Debug.Log("SendMessage took " + (Time.realtimeSinceStartup - startTime).ToString());
startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
TerrainPrefabBrain tpb = gameObject.GetComponent<TerrainPrefabBrain>();
tpb.doTestCall();
}
Debug.Log("Realtime took " + (Time.realtimeSinceStartup - startTime).ToString());
Result case 1:
// SendMessage took 0.05875015
// Realtime took 0.1102734
Case 2:
Debug.Log("Benchmarking 100000 direct vs. 100000 indirect calls.");
float startTime = Time.realtimeSinceStartup;
for (int i = 0; i < 100000; i++)
{
gameObject.SendMessage("doTestCall");
}
Debug.Log("SendMessage took " + (Time.realtimeSinceStartup - startTime).ToString());
startTime = Time.realtimeSinceStartup;
TerrainPrefabBrain tpb = gameObject.GetComponent<TerrainPrefabBrain>();
for (int i = 0; i < 100000; i++)
{
tpb.doTestCall();
}
Debug.Log("Realtime took " + (Time.realtimeSinceStartup - startTime).ToString());
Result case 2:
// SendMessage took 0.0526247
// Realtime took 0.0009641647
Комментариев нет:
Отправить комментарий