デライト高速化における KNEST 隠し実装が一段落した。18日は作業方針検討のみで20日から,休日を除いてちょうど10日間での達成だった。夜に出振るい済み。
必要以上に固め過ぎるのも良くないため,隠し化は現時点で最低限必要な範囲に留めたが,期待以上の安定性で期待通りの高速化が得られた。次の施策も出来たので,まだまだ高速化出来る。KNEST 隠しは Dex に匹敵するデライトの武器になるだろう。
交度整理をしっかり進めたこともあり最初の輪数取得改良が想定以上に長引いたものの,ここで KNEST 隠し共通の問題がほとんど解決したため,自我隠し・輪郭隠しは半日ほどで終わった。この交度整理も収穫として大きかった。輪郭操作系の kn
の外充て函数を整備したことで関連交度も一気に整理された。
影響範囲と確率的に大きな問題はないだろうと見て,排他制御が甘い部分をあえて残して出振るいを急いだが,出振るい直後に壊衝が多発して少し焦った。すぐに論軸的な問題と気付き修正し,その後はむしろ想定以上に安定して動いている。この判断も結果として正解だった。
輪数取得改良
輪数隠しに関しては,第二次知番改良中に固まった「輪数取得改良」として,輪数取得の仕組みを全体的に改良した。
これまでデルンではいちいち厳密な輪数表示をしていたが,これが大きな低速化要因になっていた。デライト以前まで,count()
の遅さに対する認識が甘かった。デライト以後,そもそも出場における件数計算は原理的に遅いもの,と気付いてページ付け(OFFSET
句)に上限を設けるなどの対策はしていた(希哲13年10月14日の開発記録)が,輪数は一筋縄ではいかない部分があり放置してきた。
厳密な同期の必要性や隠し効率から,次のように整理することにした。
また,この過程で各輪郭操作での輪数更新が必要になったため,ほとんど未実装だった輪郭操作系の外充て函数を整備した。
自我隠し・輪郭隠しから次の施策へ
自我隠しに関しては昨年4月に中途半端な実装をしていたため,これを整理した。輪郭隠しは,現時点で一覧部分には適用出来ないものの一応実装しておいた。
自我隠しが出来たことで自我情報を利用しやすくなったため,自我アイコンに ts_upd
を使った隠し破りを付けたかったが,自我情報の取得部分がまだ非効率なので見送った。
輪郭情報も求頼を分割し過ぎているので,これを統合することを考えているうちに,次の施策がまとまった。
輪郭一覧については,まず知番のみで中景輪を取得し,輪郭隠しと照合してから三景の輪郭情報を同時に取得することにした。これで輪郭隠しを効率的に利用出来,求頼を大幅に減らせる。予定していた検索属性もここで盛り込む。