@kfujieda
レスポンスが悪い
- 通信プロトコル(REST API)に無駄が多い
- JSONデコードが無駄に大きい
リクエスト数が無駄に多い
JSONのデコードが遅かった
4/23に全面改良
- 春イベント
- イベント期間中はDAUが大きく増える
- 過去のイベントでは通信エラーが頻発
- イベントに合わせて大幅改良
- 通信プロトコルの改良
- クライアントの改良
- Flash11のネイティブJSONデコーダー
何かするたびにエラーだったのに…
クライアントを殆ど書きなおしている?
支援ツールの開発者が死亡
- プロトコルがらっと変わって支援ツールが死んでしまった(二晩くらいかかかった)
KancolleSniffer
- 艦これの支援ツール
- 情報の一覧表示
自動式タイマー (遠征、建造など)
通信をキャプチャして実現
- Windowsのシステムプロキシを乗っ取る
ログイン (旧)
- スタート画面から母港まで17リクエスト
- マスターデータのリクエスト数が多い
- まとめるとJSONデコードが間に合わないからか
けっこうやりとりが多い
/api_get_master/ 系は7つくらいリクエストがあって、でもログイン時に全部とったらいんじゃね?って 思ったけど、ログイン時に取得するとJSONデコードが間に合わない?
ログイン (旧)の問題
/api_get_master/ship 561kb
- 艦娘と深海戦艦全部の仕様
- 55プロパティのオブジェクトが約400
- 遅いCPUではデコードが間に合わない(ノートはともかくタブレットだと死ぬ)
/api_get_master/ship 183kb
- 保有装備の情報
- 名前を含む装備の仕様が全て入っている
- 12.7cm連装砲が20個あれば"12.7cm連装砲"という文字列が20個
ログイン (新)
- スタート画面から母港まで9リクエスト
- マスターデータの取得を集約
- slot_itemの縮小
装備のやりとりなどリクエストが小さくなってる
解体
旧クライアント
- 解体の速度が遅い(ザコの駆逐艦が多すぎる)
- /api_get_kousyou/destroyship 解体指示(引っ張ってくるデータが多すぎるので遅くなるのも必然)
新クライアント
- 旧だと保有装備などの情報も引っ張ってくるので、とにかく遅い。
- 新しいほうは指示のAPIだけ叩くから断然早い
母港
毎回全艦娘の状態を取得するのは同じ (このあたりは旧とあまり変わっていない)
支援ツールへの影響
- 操作後に現状確認するリクエストが出ない
- 情報を取得する機会が激減
- KancolleSnifferはリクエストのパラメータをもとに計算
解体→艦娘数-1,装備数-n
母港に戻ると現状確認するのは同じ
- 母港に戻った時に情報更新したらいい