我正在尋找分析自定義日誌文件的方法。解析和分析少量GB數據
我現在已經實現了使用LINQ和C#.NET。它僅適用於最大500MB的日誌文件。
日誌文件中的每一行是將對象,看起來像
public class Metrics
{
public DateTime Date { get; set; }
public string Metrics1 { get; set; }
public string Metrics2 { get; set; }
:
:
public string Metrics9 { get; set; }
}
List<Metrics> MetricsList = new List<Metrics>();
填充MetricsList。 在MetricsList上運行各種LINQ查詢以提供有用的分析。 觀察到一個度量對象需要300個字節。我在500MB日誌文件中有大約400萬行,這使得MetricsList的大小單獨佔用1GB以上的程序內存。
我的要求是解析和分析大小高達2 GB的文件,這看起來會消耗4 GB的內存。
使用Windows,Microsoft Technologies和任何開源庫的更好的方法或替代品。
您可能需要流入數據。一次只讀取一個度量標準(或一組度量標準),將它們從內存中置入,然後轉到下一個。 –
你最近怎麼看書?您可以使用'Streamreader'或'File.ReadLines'來讀取一行,而不是所有的(f.e.'File.ReadAllLines')。你還應該看看['MemoryMappedFile'-class](http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx)。 _內存映射文件使程序員能夠處理極大的文件,因爲內存可以同時管理,並且允許完全隨機地訪問文件而無需查找。內存映射文件也可以在多個進程間共享_「 –
」我有使用Windows和Microsoft技術的限制「,您爲什麼將此視爲限制?你有什麼技術? –