字符串迭代c#mono
我有长度为2418060个字符的字符串。 此字符串包含数字、大括号和一些特殊符号。这是一个样本字符串迭代c#mono,c#,string,unity3d,mono,C#,String,Unity3d,Mono,我有长度为2418060个字符的字符串。 此字符串包含数字、大括号和一些特殊符号。这是一个样本 !(242.9288)F(562.7884)/(45)!(242.9288)F(126.8685)&(18.95)F(126.8685)!(140.2591)F(114.399)& 这是LinderMayer系统,所以每个字符都有空间动作,括号中的数字是变量 我如何通过这个快速迭代?当我通过simple for循环逐字符迭代时,它会持续10分钟,而Unity在此之后不会响应。。当然在
!(242.9288)F(562.7884)/(45)!(242.9288)F(126.8685)&(18.95)F(126.8685)!(140.2591)F(114.399)&
这是LinderMayer系统,所以每个字符都有空间动作,括号中的数字是变量
我如何通过这个快速迭代?当我通过simple for循环逐字符迭代时,它会持续10分钟,而Unity在此之后不会响应。。当然在里面我有开关:
switch (array[i])
{
//TurnLeft
case '+':
i+=2;
do
{
checkingString.Append(array[i]);
i++;
} while (array[i] != ')');
value=float.Parse(checkingString.ToString());
currentPosRot.rotation = Quaternion.AngleAxis(value, Vector3.left) * currentPosRot.rotation;
//position = position + (rotation * new Vector3(0, 2, 0));
//curve.AddPointAt(position);
checkingString = new StringBuilder();
value = 0.0f;
break;
//Turn right
case '-': ...
这是一个优化问题。我假设在这种特定情况下,第二条优化规则将适用:不要优化 第1步:将输入数据(2MB字符串)缩减到合理的可测试大小。使其能够连接Unity profiler,并在不到10秒内获得性能结果 步骤2:配置文件。查看处理时间的确切去向
步骤3:选择第一个一次性耗电元件,并对其进行改进,以降低处理能力。然后从第2步开始,直到您的性能问题得到解决。为什么会有反对票?