如何在保持高性能的同时阅读庞大的日志文件?

时间:2012-10-10 02:48:41

标签: c#

我正在阅读一个500MB +的日志文件,我想知道哪个速度更快。

我希望能够滚动~1mil条目,但由于虚拟模式(希望如此),因此不应该很慢。它成功加载,但滚动有点滞后。

目前我在虚拟模式下使用listview 问题 - 虚拟检索项功能 -

  1. 列出存储日志信息的每个条目,以及检索项目调用以显示列表中显示的特定索引,例如列表[e.getindex]
  2. 将每个日志信息的开头(日志文件中的位置)存储到列表中,然后调用read函数从该位置读取转义字符(获取一个日志条目)。例如,第一个条目将读取0 - 转义字符,例如第二个条目将读取16-43,第三个,43-60(日志条目的大小都变化)
  3. 两者都有利弊,但我很想知道其他人在速度方面的看法。

    一方面,(1)将1mil条目的所有数据读入列表,然后从内存中读取它们,因为虚拟模式仅帮助显示当时可查看的项目(大约10)。但是,开销是所有数据都在内存中

    使用(2)没有实际日志条目存储到内存中,但是它必须调用文件来扫描文件,并开始在特定行读取。它必须为每个项目进行此调用。

    有备用吗?这些是研究的最快方式。

0 个答案:

没有答案