繁体   English   中英

C#解析文本文件的开销

[英]C# Parsing text file overhead

我正在尝试将一个非常简单的文本文件解析为一些结构。 为此,我需要在每个新行和每个空格上拆分整个文本。 代码非常简单:

string   path       = "C:/file.ext";
string   fileString = File.ReadAllText (path);
string[] splitFile  = fileString.Split (' ', '\n', '/');

对上述代码进行概要分析(使用内置的游戏引擎分析器)后,我注意到,在解析40KB文件时, File.ReadAllText分配了280KB内存,字符串的Split分配了310KB的内存,这些内存的总和几乎是Byte的15倍。一份文件。

  1. 正常吗
  2. 有什么方法可以读取文本文件,同时又避免了这么大的分配(可能是不安全的代码?)?

注意:重点是,读取文件时分配的文件大小是否大于文件大小的x倍是否正常。 我知道逐行阅读将使GC可以从以前的ReadLine中收集垃圾。 但这似乎并不正常,而且,由于目标设备是旧的android手机,我担心解析50MB文件实际上不会导致应用程序崩溃。 问题2的意思是如何最小化分配,而不是如何分配这些分配。

我没有足够的声誉来发表评论,但您是否尝试过使用Binary Reader Class读取二进制格式的文件,然后一次读取8个字节?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM