- @neetsdkasu #
gitlab.com/neetsdkasu/Pai…
ビットで管理すると速くなるのか確認するための前段階処理として余計なミスを減らすための処置として分離してみたけど、分離すると実行パフォーマンスが4割もダウンする模様… - @neetsdkasu #@neetsdkasu
メソッドとか小文字にすりゃ最適化でメソッド消えるかなと予想してみたが甘かったのかもしれん…
- @neetsdkasu #@neetsdkasu
まぁ手動で埋め込み直せばいいだけなのだけど…
- @neetsdkasu #@neetsdkasu
基本的にはコピーコストがボトルネックだと当て推量でやってるわけだから当てがハズレたら無駄時間よなあ・・・
- @neetsdkasu #@neetsdkasu
RGBと空で4通りだから2ビットあれば1マスを表現できる、50*50*2/8=625byte、64bit整数(8byte)にパックすると79個?
- @neetsdkasu #@neetsdkasu
2500個*4bytes=10000bytesよりは625bytesで全然少ないことは少ない
- @neetsdkasu #@neetsdkasu
問題はアクセスに色々な余計な演算処理が入ってしまうという欠点、どれくらいのコストか予想つかんが(知識と頭がないので
- @neetsdkasu #@neetsdkasu
625bytesじゃないな79個*8bytes=632bytesだな、
- @neetsdkasu #@neetsdkasu
79個固定の固定配列にするか、W*Hに合わせてサイズ調整する動的配列(?)にするか
- @neetsdkasu #@neetsdkasu
固定のほうがよいか、copy()の呼び出しはsrcとdstのサイズの小さいほうを基準にコピーするとかだからサイズチェック入るけど、固定だと代入構文でコピーできてしまうしたぶん少し速い
- @neetsdkasu #@neetsdkasu
固定にするなら埋める際はWやH気にせず50単位で場所を決めるというのもアリかもしれん、いっそ削除判定を楽にするために上下左右+1した52で管理するというのもアリかもしれん、52の場合は…676bytesの85個か…
- @neetsdkasu #@neetsdkasu
配列の位置特定をもっと簡単にするために52*64という感じにしてしまえば1列ごとにちょうど2個分という管理しやすくなるが、メモリが104個分832bytesと3割り増しくらいになってしまうわけだが・・・
- @neetsdkasu #@neetsdkasu
細かい部分はあとでやればいいとして実装が楽なやつでお試すのが一番なので52*64でやるしかない
- @neetsdkasu #@neetsdkasu
高速化どころかパフォーマンスが3分の1くらいにまで落ちてしまったのだけど…
- @neetsdkasu #@neetsdkasu
64bitがダメなんか・・・?
- @neetsdkasu #@neetsdkasu
32bitにしたら倍くらいになた…がそれでも2次元配列のやつより遅い…
- @neetsdkasu #@neetsdkasu
(そしてパイザIO上では64bitでも32bitでも速度変わらず…これは単に俺のPCは32bitマシンでパイザIOは64bitマシンだからそうなったというだけ…
- @neetsdkasu #@neetsdkasu
結論としてはやはりコピーはボトルネックではなかったということか…?(あるいはコピーコストは改善してるが増えた演算がかなり高コストなのか…
- @neetsdkasu #@neetsdkasu
あるいは俺がバカでうまく組めてないのか
- @neetsdkasu #@neetsdkasu
コピーコストだけなら2次元配列も単純にbyte型配列にすればコスト下がるはずではあるが(これも参照コストがやや悪そうにみえなくもない)
- @neetsdkasu #@neetsdkasu
ひとまずビットは効果なしで諦め
gitlab.com/neetsdkasu/Pai… - @neetsdkasu #@neetsdkasu
byte型に直したらパイザIO上では10%のパフォーマンス向上が見られた…が俺のPCではパフォーマンス変わらん謎
- @neetsdkasu #@neetsdkasu
まぁパイザ上で少しアップするのならサブミッしてもよいのかもしれなくもないが…(10%アップくらいじゃスコア上がらなさそうだが…)
- @neetsdkasu #@neetsdkasu
やはりスコア増えなかった…
paiza.jp/logic_summoner… - @neetsdkasu #@neetsdkasu
手の限りを尽くした感が出てきた
- @neetsdkasu #@neetsdkasu
クリック消しモード謎のバグがあってマイナススコアが膨らむ…!?
- @neetsdkasu #@neetsdkasu
No Animationモードだとスコア計算の仕方に問題があるのか…これは厳しい
- @neetsdkasu #@neetsdkasu
クリック消し関係ねーなこれ
- @neetsdkasu #@neetsdkasu
いや、違うかクリック消し固有か
- @neetsdkasu #@neetsdkasu
修正した
- @neetsdkasu #
マジ
twitter.com/jvnjp/status/8…
- @neetsdkasu #
俺持ってるのzipだったのでセーフ
マジ
twitter.com/jvnjp/status/8…