深圳搜豹网站建设公司/品牌营销咨询公司
原则上我们希望大量的值类型和大量的引用类型分开,如果结构体中含有一个引用类型时,那么GC将会关注整个对象,以及它的所有成员数据、间接引用的对象。当发生标记清除时,必须在移动之前验证对象的所有字段。然而,如果将不同类型分离到不同数组中,那么GC可以跳过大量数据。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/** Author:W* 结构体数据结构*/public struct Info
{public int Age;public float Score;public bool Sex;//引用类型public string Name;
}
public class StructDataTest : MonoBehaviour {//第1种方式Info[] infos = new Info[1000];//第2种方式:GC会忽略掉所有基本数据类型,只检查字符串对象,GC清除更快int[] Ages = new int[1000];float[] Scores = new float[1000];bool[] Sexs = new bool[1000];string[] Names = new string[1000];// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {}
}