---
# System prepended metadata

title: 210418 記憶體耗能測試結果

---

# 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)
