close

最近需要做一個  即時監控 的SPC chart,在沒有資料庫的情況之下

需要在程式中有可以暫存資料的地方,想單然  用 Dataset 與 DataTable 是一個不錯的選擇

 

只是要求的效能頗高,至少有 6個 chart ,每個 chart 裡面又有 4個 監控 

(其實一共要 30多個但擺不下阿......)

每分鐘要更新一次,資料 要監控 72小時,由此可以了解  要求效能與反應 是一大要件

 

用 DataTable 來處理  好處是 資料擷取方便,但最大的問題是 效能不是很佳

於是 有了這次的測試

 

比較方式

個別用 三種資料結構  建立 主表 (72小時的資料  每分鐘存放一筆  就各別有 4320筆資料

並用 StopWatch  個別紀錄 建立完成的時間

 

再個別搜尋 取出 30min 3hr 6hr 12hr 24hr 48hr  的資料  並記錄時間

 

最後

個別將  30min 3hr 24hr 72hr 的資料顯示在 4個 chart 上

每個 Chart 都必須顯示 4 種資料     

並個別 紀錄時間

 

由此 可比較三種資料處理的時間

 

當然不用說  DataTable 果然是最後一名,資料建立  搜尋  顯示 都是最慢的

可見  當資料龐大時,還是別用 DataTable 好

 

資料建立   List 速度最快

(陣列要先綁一塊記憶體空間不知道是不是這樣 花了點時間...)

 

但資料搜尋  出乎意料的,居然是 List 的資料結構  速度最快

(可見  MS 對 List 做了較佳的優化      不然 真是怪哉)

或許也是受限於 自己對 搜尋 的指令不夠強,導致  陣列的搜尋 居然比 List 慢     怪....

 

以目前這樣的測試結果...............就看有機會的人自己考慮

在小資料的情況之下  Array List 資料的差異不大

DataTable 有所小輸,但勝在 資料連接方便

各有優缺

 

 

當然,所有的時間  還是沒 Chart 圖顯示的時間慢..............................................

這個  是之後要處理的議題,  改天再研究看看怎麼辦   >_<

 

測試環境是  VB.net 2010    VM XPP

程式碼 可以到此下載

 https://docs.google.com/open?id=0B7UGRMCI7Pjpa012VDl4eVNzdnc

 

 

arrow
arrow
    文章標籤
    MSchart SPC
    全站熱搜
    創作者介紹
    創作者 Rh 的頭像
    Rh

    程式狂想曲

    Rh 發表在 痞客邦 留言(0) 人氣()