Tối ưu bộ nhớ với Struct thay vì Class
C# Code
// Ví dụ về dữ liệu nên dùng struct
// Struct là value type, được lưu trên stack, không tạo rác cho GC.
public struct PointData
{
public float x;
public float y;
public PointData(float x, float y)
{
this.x = x;
this.y = y;
}
}
// Ví dụ về đối tượng nên dùng class
// Class là reference type, được lưu trên heap.
// Dùng khi đối tượng có vòng đời dài, cần tham chiếu, hoặc có hành vi phức tạp.
public class Enemy
{
public int health;
public float speed;
public void TakeDamage(int amount)
{
health -= amount;
}
}
public class OptimizationExample : MonoBehaviour
{
void Start()
{
// Sử dụng struct: hiệu quả cho các mảng dữ liệu lớn.
// Mảng này sẽ được cấp phát liền một khối trên bộ nhớ.
PointData[] points = new PointData[1000];
for (int i = 0; i < points.Length; i++)
{
points[i] = new PointData(i, i);
}
}
}Hiểu rõ khi nào nên sử dụng `struct` thay cho `class` để giảm áp lực lên bộ nhớ và garbage collector, đặc biệt hữu ích cho các đối tượng dữ liệu nhỏ, bất biến.