//1. 미세하지만 gc가 일어난다.
bool isPlayer = other.gameObject.tag == playerTag
//2. 미세하지만 gc가 안 일어난다.
bool isPlayer = other.gameObject.CompareTag(playerTag)
// PerformanceTest.cs
void Update()
{
float startTime = Time.realtimeSinceStartup;
;
String1();
float t1 = (Time.realtimeSinceStartup - startTime) * 1000f;
startTime = Time.realtimeSinceStartup;
String2();
float t2 = (Time.realtimeSinceStartup - startTime) * 1000f;
Debug.Log(t1 + " " + t2 \);
}
void String1()
{
for (int i = 0; i < 1000; i++)
{
string str = "";
for (int j = 0; j < 1000; j++)
{
str += "This is string";
}
}
}
void String2()
{
for (int i = 0; i < 1000; i++)
{
StringBuilder builder = new StringBuilder();
for (int j = 0; j < 1000; j++)
{
builder.Append("This is string");
}
string str = builder.ToString();
}
}

// PerformanceTest.cs
void Update()
{
float startTime = Time.realtimeSinceStartup;
;
VectorMultiply1();
float t1 = (Time.realtimeSinceStartup - startTime) * 1000f;
startTime = Time.realtimeSinceStartup;
VectorMultiply2();
float t2 = (Time.realtimeSinceStartup - startTime) * 1000f;
startTime = Time.realtimeSinceStartup;
VectorMultiply3();
float t3 = (Time.realtimeSinceStartup - startTime) * 1000f;
Debug.Log(t1 + " " + t2 + " " + t3);
}
Vector3 vector = new Vector3(123, 456, 789);
float multiplier = 7894.3f;
void VectorMultiply1()
{
for (int i = 0; i < 1000000; i++)
{
var result = multiplier * multiplier * vector;
}
}
void VectorMultiply2()
{
for (int i = 0; i < 1000000; i++)
{
var result = multiplier * vector* multiplier;
}
}
void VectorMultiply3()
{
for (int i = 0; i < 1000000; i++)
{
var result = vector* multiplier * multiplier;
}
}

