2012-10-05 55 views
1

我有關於如何從大約〜600mbs的日誌文本文件信息中讀取大塊數據的問題。隨着搜索通過該文件找到有用的信息Windows窗體顯示大量數據,但也可以選擇

我想知道什麼是最好的方式/有效的方式來顯示數據。以前對於大約1mb的日誌文件數據,我使用了一個列表框來在文件中顯示1個條目的字符串。這將爲1MB的數據填充大約7000個列表框條目。顯然,我不能爲〜600mb的日誌文件做這件事。

我希望用戶能夠「展開」一個日誌條目並「向下鑽取」並查看有關特定信息/調試/錯誤的更多詳細信息。我認爲,因爲listbox本身是基於數組的索引,我需要使用不同的容器來顯示信息,但仍然保持選擇條目和展開詳細信息的能力。

+0

做一些基準測試,似乎爲什麼我瓶頸我的系統部分是因爲閱讀。但最大的原因是顯示數據(書寫)。在尋找一個很好的方法來顯示海量的條目 – Teddy

回答

0

我會接近設計是這樣的:

  1. 一組通過分析日誌文件的完整的「立即搜索」按鈕或一些這樣的東西的內容中最嚴重的過濾器。
  2. 其中我要求頁面大小的篩選器(如顯示10,50,100結果每頁)
  3. 底部的搜索結果窗口中將包含每個日誌節點的摘要數據列表選擇過濾條件,然後根據需要將結果拆分成頁面。
  4. 詳細信息窗格,當你選擇一個特定的日誌節點是可見
  5. 即指出

這將允許用戶快速搜索他們正在尋找的匹配記錄數頁腳狀態欄,但不會被發現結果的大小所淹沒,並且考慮到數據集的大小,他們可能會想要在顯示任何節點之前對其進行過濾。

+0

我認爲搜索對於一個文件來說絕對是必要的,頁面結果也是一個好主意,我會給它一個鏡頭 – Teddy

1

那麼樹會有道理,你可以變得聰明,做延遲加載在後臺線程中建立節點/索引,並選擇節點作爲後備。

同樣的事情,但有多個列表框的過濾器爲基礎的選擇是一種可能性,以及

節點可能是MonthYear,日,小時,入口等來源或類型,如果它在那裏。

你最不希望發生的事情是列表框中有大量的條目可供選擇,沒有人願意使用它,以及任何不得不厭惡它的人。

0

對於600MB數據,大約7000 * 600(4.2M)行,您將無法在一個窗口中顯示所有這些數據。最好用一種方式來瀏覽不同的頁面(比如說每個頁面只有100行)。如果我是你,我會預處理日誌文件,然後將日誌插入到數據庫中。然後使用分頁加載來自數據庫的行。如果你這樣做,你仍然可以使用listview或gridview。

相關問題