---
# System prepended metadata

title: TEAM_F (Dark_Army)

---

# TEAM_F (Dark_Army)
- 導入したツール
  - Docker(ぴろり)
  - rack-mini-profiler
  - Datadog(306)
  - alp
- わかったこと
  - GoはRubyとは違ってbuildが必要なこと
    - `go build -o webapp *.go`
  - ActiveRecord は神
  - コマンドでGitを使ってPull Requestをするまでのやり方
  - SQL文の改善
  - SELECTでカラムを取得してくる際、*ですべて取ってくるのではなく必要なカラムを限定すれば無駄なSQL操作が減る
- インデックスを貼れば検索速度が改善される
  - `init.sql` を編集（できなかった）
  - ローカルで
  - マトリックスの仕組みが深く理解出来ました。
- 改善したこと
    - Nginx
        - gzip 圧縮
        - css を静的に返した
        - /candidates をcacheさせた(効果は不明)
        - tcp から socket 通信
    - Unicorn
        - worker_processの数をいじった
        - socket 通信した
    - MySQL
        - ログをは吐き出すように
            - 標準、エラー、スロークエリー
            - Datadog にログ転送
        - クエリキャッシュ有効化
        - パラメータチューニング
        - インデックスを張った(効果は謎)
    - Ruby
        - SELECTで取ってくるカラムの限定 
- 挑戦したけどできなかったこと
    - GOでサーバー立ちあがなかった
    - Permutation with Replacementで試してましたが、実行時間がすごく長いので、C - 禁断の三角関係の問題まだクリア出来ません。
    - 最初はPython 3でコードを書きましたが動かなかった（Python 2しか対応してないから）。
    - SQLにインデックスを貼る
    - Datadog入れたけど解析できないので、　New Relic でも入れたほうがいいかもです
- スコアの変遷
    - -490000(初期スコア)
    - 2000 (Nginx チューニング)
    - 6000 (worker_process 増やした？)
    - 10000(css 静的化)
    - 16000(mysql クエリキャッシュ)
    - 17000(datadog 外した)
    - 18000(Ruby やめて なにもいじってない python にした)
    - コードコンテスト：　1150
