我创建了一个应用程序,它将在服务器上运行并从客户端接收数据包。应用程序的工作是接收数据包,解析它们并分析它并生成结果。我的数据包格式可接受,然后我将它们写入 csv 文件或生成日志文件(如果它们的格式不正确)。我的应用程序运行良好,但是当我对应用程序的性能进行分析时,我发现大部分 cpu 周期或时间都花在了写入 csv 文件和写入日志文件上。如果 csv 文件变大,那么在写入 csv 文件时会花费太多时间或周期。以下是我写入日志文件和 csv 文件的代码:-
TextWriter tsw = new StreamWriter(@filename, true);
tsw.Write(DateTime.Now.ToString("HH:mm:ss") + " ");
tsw.WriteLine("Message recieved from client(" + socketForClient.RemoteEndPoint + ") : ");
tsw.WriteLine();
tsw.Close();
static private void csv_print(string pol, params string[] printall)
{
string filename = string.Format(pol + ".csv");
TextWriter tsw = new StreamWriter(@filename, true);
for (int i = 0; i < printall.Length; i++)
{
tsw.Write("\"" + printall[i] + "\",");
}
tsw.Write(Environment.NewLine);
tsw.Close();
}
那么他们有没有更好更快的写入日志文件和 csv 文件的方法(当 csv 文件中的数据变大时)?