# 210418 記憶體耗能測試結果 [TOC] ## 測試流程 + 每 5 秒紀錄 RAM 大小到 log 檔。 1. 程式開始,載入所需物件 2. 載入檔案 3. 分析檔案中 10 則訊息 4. (Sleep 3 秒) 5. 回到 3.,直到處理共 2500 則訊息 6. 程式結束 ### Code ```python # multiprocess # 子執行緒的工作函數 def job(): times = 0 msg_file_list = ['2019_Apr-Jul_Data'] for msg_file in msg_file_list: with open(msg_file + '.csv', 'r', encoding="utf-8") as f: csv_list = preprocess_from_csv_to_list(f) i = 0 start = 0 window = 10 size = len(csv_list) while start < size and start < 2500: start = i * window end = (i + 1) * window print(datetime.now().strftime("%Y/%m/%d %H:%M:%S") + ', ' + msg_file + ' ' + f'{i:04d}') csv_df = model.batch_analysis(csv_list[start: end], pinyin_mode=True) save_path = 'data/' + msg_file + f'{i:04d}' + '_result.csv' csv_df.to_csv(save_path, index=False) i += 1 times += 1 # time.sleep(3) f.close() # 建立一個子執行緒 t1 = threading.Thread(target=job) t2 = threading.Thread(target=job) t3 = threading.Thread(target=job) # 執行該子執行緒 t1.start() t2.start() t3.start() # 等待子執行緒結束 t1.join() t2.join() t3.join() ``` ## 測試機器 + **CPU:** i7-6700 + **RAM:** 16G + **GPU:** Null ## 測試結果 ### 1. 執行 1 個程式 ### 2. 執行 1 個程式,每批次 Sleep 3 秒 + 資料量: 2500 + 14:34:47 --> 15:53:59 (4751 sec) ![](https://i.imgur.com/hugTEWh.png) ### 3. 執行 3 個程式 + 資料量: 7500 + 11:26:22 --> 12:38:44 (4342 sec) ![](https://i.imgur.com/n9tFAkx.png) ### 4. 執行 3 個程式,每批次 Sleep 3 秒 + 資料量: 7500 + 12:49:28 --> 14:14:13 (5085 sec) ![](https://i.imgur.com/DkbKRlt.png) ### 5. 執行 1 個程式,開 3 執行緒跑 + 資料量: 7500 + 22:37:16 --> 23:47:34 (4217 sec) ![](https://i.imgur.com/NHp2YdC.png) ### 6. 執行 1 個程式,開 3 執行緒跑,每批次 Sleep 3 秒 + 資料量: 7500 + 00:31:05 --> 01:59:09 (5283 sec) ![](https://i.imgur.com/IYSibKr.png)