---
# System prepended metadata

title: 振り分けアプリtime計測

---

# 振り分けアプリtime計測

## allocationのジョブが届くまで

### 計算量の見積もり

* allocation seriarizlier
    * create_exam_collection
        * O(工数対応表のレコード数)
    * create_answersheet_collection
        * O($提出答案数^2$)
    * create_examiner_collection
        * 各添削者のもつ試験種の総和が凡その計算量？
        * 数学科で約1万3千
    * configの作成
        * O(提出答案数)


### 化学科のサンプル（平野のローカルサーバー）

#### try1

web_1  | create開始
web_1  | job_createをするまでの時間 :15.69145679473877
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：2.8195793628692627
web_1  | answersheet_collectionの作成時間：1.15328049659729
→コードのエラー（logの引数）

#### try2

web_1  | create開始
web_1  | job_createをするまでの時間 :8.909762859344482
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：3.600872278213501
web_1  | answersheet_collectionの作成時間：1.7427027225494385
web_1  | examiner_collectionの作成時間：88.74525475502014
web_1  | configの作成時間：0.00034546852111816406
web_1  | worker_serialier_createするまでの時間:109.94286942481995
web_1  | 総時間：111.33273839950562


### 数学科の振り分けファイル（平野のローカルサーバー）

#### try1
web_1  | create開始
web_1  | job_createをするまでの時間 :8.309148073196411
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：1.9192826747894287
web_1  | answersheet_collectionの作成時間：21.88408637046814

#### try2
web_1  | create開始
web_1  | job_createをするまでの時間 :11.143585920333862
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：4.416969299316406
web_1  | answersheet_collectionの作成時間：45.90660905838013
web_1  | examiner_collectionの作成時間：94.98476791381836
web_1  | configの作成時間：1.2636184692382812e-05
web_1  | worker_serialier_createするまでの時間:160.68624353408813
web_1  | 総時間：161.82764840126038


#### try3（再起動後）

web_1  | create開始
web_1  | job_createをするまでの時間 :7.30079460144043
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：3.180185079574585
web_1  | answersheet_collectionの作成時間：22.22856068611145
web_1  | examiner_collectionの作成時間：20.522905111312866
web_1  | configの作成時間：1.1920928955078125e-05
web_1  | worker_serialier_createするまでの時間:57.253748655319214
web_1  | 総時間：58.26463222503662

#### try4

web_1  | create開始
web_1  | job_createをするまでの時間 :5.326932430267334
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：2.1159205436706543
web_1  | answersheet_collectionの作成時間：26.092868089675903
web_1  | examiner_collectionの作成時間：20.1531765460968
web_1  | configの作成時間：1.3828277587890625e-05
web_1  | worker_serialier_createするまでの時間:59.498777866363525
web_1  | 総時間：60.45322370529175

#### try5

web_1  | create開始
web_1  | job_createをするまでの時間 :5.436414003372192
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：1.7099685668945312
web_1  | answersheet_collectionの作成時間：29.07736587524414
web_1  | examiner_collectionの作成時間：28.144038915634155
web_1  | configの作成時間：1.5735626220703125e-05
web_1  | worker_serialier_createするまでの時間:69.72016930580139
web_1  | 総時間：70.71834516525269

#### try 6

web_1  | create開始
web_1  | job_createをするまでの時間 :6.535321950912476
web_1  | create_examiner_result計測開始
web_1  | exam_collectionの作成時間：3.6750645637512207
web_1  | answersheet_collectionの作成時間：26.872790575027466
web_1  | examiner_collectionの作成時間：25.3409526348114
web_1  | configの作成時間：1.71661376953125e-05
web_1  | worker_serialier_createするまでの時間:67.41327357292175
web_1  | 総時間：68.50565075874329

## allocateのタスク

### create_allocator_from_collections

外側のループは

答案数×添削者数の二重ループの内部で線形時間の添削者リストのfilterがあるので、全体の計算量は

$$ O(答案数 \times 添削者^2) $$

数学科の以下の条件で行い計測したところ、1パーセントの処理完了に凡そ70秒程度かかった。
途中で中断をしたが、引き続き行うと70分程度かかると思われる

答案数：約11000件
添削者数：約1500人
$答案数 \times 添削者数$：約1600万 = $1.6 \times 10^7$
$答案数 \times 添削者^2$：約$2.4\times 10^{10}$

化学科の答案で以下の条件で計測すると全体が終了するのに505秒=8分25秒かかった。

答案数：1583件
添削者：513人
$ 答案数 \times 添削者数$：$812079=8.1 \times 10^5$
$答案数 \times 添削者^2$：$416596527 = 4.17 \times 10^8$


### force_allocation

上記の化学科の答案で98秒

### linear_programming_allocate

上記の化学科の答案で1321秒で約22分

