在Unity中从文本读取要比C#控制台应用程序慢很多

时间:2019-01-18 14:59:54

标签: c# unity3d mono

this问题为基础,我有一个文本文件,格式为7500万行:

X Y Z colorvalues -0.680891 -90.6809 0 204 204 204 255

我正在从文件中读取文件,操作速度非常慢。经过一番讨论,我意识到该操作仅在Unity上很慢。我测试了以下代码:

StreamReader sr;

// Use this for initialization
void Start () {
    sr = new StreamReader(Application.dataPath + "/PointCloud/DVS.txt");
    Debug.Log("Read is called");
    Read();
}

void Read()
{

    string line;
    while ((line = sr.ReadLine())!=null)
    {

    }
    Debug.Log("Read has ended");
}

仅需3分钟即可读取txt文件,而无需执行任何其他操作。当我使用C#应用程序或C ++测试它时,最多需要30秒。我真的很好奇是什么原因造成的。如果有人可以解释为什么这个问题在Unity上发生,我将很高兴。谢谢!

这里是带有新主题的Profiler的照片。

enter image description here

1 个答案:

答案 0 :(得分:0)

今天,我弄清楚了问题所在。我正在编辑器中以及为调试而开发的开发中测试这些代码。当我为Windows正确构建它时,阅读速度要快得多,并且可以在30秒左右的时间内阅读所有行。