監測系統效能比較與改善:CSV檔案與SQLite數據庫的數據讀取 === ## 1. 實驗目的 本實驗的主要目的是比較兩種數據存儲和讀取方法在實時監測系統中的效能表現:一是將數據存儲於CSV檔案中,二是使用SQLite數據庫進行存儲。特別針對高取樣頻率(10KHz)的數據處理場景,本實驗旨在確定哪種方法在數據存取效率和系統表現上更優越。 ## 2. 方法論 本實驗對比了使用CSV檔案和SQLite數據庫進行數據存儲和讀取時,數據更新和圖表繪製的時間表現。為了公正比較,我們採取了標準化的測試環境和流程。 ### 2.1 實驗設計 ![f50fb072-13ac-4750-87ee-7a588ef5091c](https://hackmd.io/_uploads/HJsUBxwBa.gif) #### 2.1.1 CSV檔案方法 - **實驗過程**:測試中記錄了從CSV檔案讀取數據並繪製圖表所需的時間。特別注意檔案大小隨時間增長對性能的影響。 - **結果分析**:觀察到更新時間隨著檔案增大而上升,但圖表繪製時間與更新時間保持一致。 #### 2.1.2 SQLite數據庫方法 - **實驗過程**:同樣測試了使用SQLite數據庫進行數據讀取和圖表繪製的時間。 - **結果分析**:發現數據更新速度較快,且不隨檔案大小增加而改變。然而,圖表繪製時存在一定的延遲。 ### 2.2 實驗數據與視覺化 為直觀展示兩種方法的性能差異,我們製作了兩個gif動畫,展示了在不同條件下的數據讀取和圖表更新過程。 ## 3. 數據收集與處理 - **實驗設計**:使用同一個擷取盒中(iDAQ-934)同時擷取資訊進行實驗,以確保結果的一致性和可重製性。 - **數據處理**:直接觀察RawData,讓兩張擷取卡處於雜訊狀態(值較較小),再利用手觸碰觀察峰值。 ## 4. 結果分析 - **CSV檔案法**:雖然數據更新速度隨檔案增大而變慢,但圖表繪製速度穩定。 - **SQLite數據庫法**:提供了更快的數據更新速度,但圖表繪製存在延遲,且此延遲與檔案大小無關。 ## 5. 結論與改進措施 鑒於實時監測系統對圖表繪製更新速度的要求較高,我們選擇了CSV檔案方法。為了解決CSV檔案隨時間增長而導致更新時間增加的問題,我們提出了分割CSV檔案的策略。具體做法是設定一個時間閾值(例如10秒),一旦達到此閾值,當前CSV檔案關閉並創建新檔案繼續寫入。這種方法可以有效控制單個CSV檔案的大小,從而保持更新速度。 ## 6. 未來展望 未來工作將集中於進一步優化數據存儲結構,並探索新的數據庫技術,以提高實時監測系統的整體性能。