usakdsteen

ゆうさくですてぃーん

2017年06月09日のTweets

のTweets | のTweets | のTweets >
  1.  @neetsdkasu #

    gitlab.com/neetsdkasu/Pai…

    ビットで管理すると速くなるのか確認するための前段階処理として余計なミスを減らすための処置として分離してみたけど、分離すると実行パフォーマンスが4割もダウンする模様…

  2.  @neetsdkasu #
    @neetsdkasu

    メソッドとか小文字にすりゃ最適化でメソッド消えるかなと予想してみたが甘かったのかもしれん…

  3.  @neetsdkasu #
    @neetsdkasu

    まぁ手動で埋め込み直せばいいだけなのだけど…

  4.  @neetsdkasu #
    @neetsdkasu

    基本的にはコピーコストがボトルネックだと当て推量でやってるわけだから当てがハズレたら無駄時間よなあ・・・

  5.  @neetsdkasu #
    @neetsdkasu

    RGBと空で4通りだから2ビットあれば1マスを表現できる、50*50*2/8=625byte、64bit整数(8byte)にパックすると79個?

  6.  @neetsdkasu #
    @neetsdkasu

    2500個*4bytes=10000bytesよりは625bytesで全然少ないことは少ない

  7.  @neetsdkasu #
    @neetsdkasu

    問題はアクセスに色々な余計な演算処理が入ってしまうという欠点、どれくらいのコストか予想つかんが(知識と頭がないので

  8.  @neetsdkasu #
    @neetsdkasu

    625bytesじゃないな79個*8bytes=632bytesだな、

  9.  @neetsdkasu #
    @neetsdkasu

    79個固定の固定配列にするか、W*Hに合わせてサイズ調整する動的配列(?)にするか

  10.  @neetsdkasu #
    @neetsdkasu

    固定のほうがよいか、copy()の呼び出しはsrcとdstのサイズの小さいほうを基準にコピーするとかだからサイズチェック入るけど、固定だと代入構文でコピーできてしまうしたぶん少し速い

  11.  @neetsdkasu #
    @neetsdkasu

    固定にするなら埋める際はWやH気にせず50単位で場所を決めるというのもアリかもしれん、いっそ削除判定を楽にするために上下左右+1した52で管理するというのもアリかもしれん、52の場合は…676bytesの85個か…

  12.  @neetsdkasu #
    @neetsdkasu

    配列の位置特定をもっと簡単にするために52*64という感じにしてしまえば1列ごとにちょうど2個分という管理しやすくなるが、メモリが104個分832bytesと3割り増しくらいになってしまうわけだが・・・

  13.  @neetsdkasu #
    @neetsdkasu

    細かい部分はあとでやればいいとして実装が楽なやつでお試すのが一番なので52*64でやるしかない

  14.  @neetsdkasu #
    @neetsdkasu

    高速化どころかパフォーマンスが3分の1くらいにまで落ちてしまったのだけど…

  15.  @neetsdkasu #
    @neetsdkasu

    64bitがダメなんか・・・?

  16.  @neetsdkasu #
    @neetsdkasu

    32bitにしたら倍くらいになた…がそれでも2次元配列のやつより遅い…

  17.  @neetsdkasu #
    @neetsdkasu

    (そしてパイザIO上では64bitでも32bitでも速度変わらず…これは単に俺のPCは32bitマシンでパイザIOは64bitマシンだからそうなったというだけ…

  18.  @neetsdkasu #
    @neetsdkasu

    結論としてはやはりコピーはボトルネックではなかったということか…?(あるいはコピーコストは改善してるが増えた演算がかなり高コストなのか…

  19.  @neetsdkasu #
    @neetsdkasu

    あるいは俺がバカでうまく組めてないのか

  20.  @neetsdkasu #
    @neetsdkasu

    コピーコストだけなら2次元配列も単純にbyte型配列にすればコスト下がるはずではあるが(これも参照コストがやや悪そうにみえなくもない)

  21.  @neetsdkasu #
    @neetsdkasu

    ひとまずビットは効果なしで諦め
    gitlab.com/neetsdkasu/Pai…

  22.  @neetsdkasu #
    @neetsdkasu

    byte型に直したらパイザIO上では10%のパフォーマンス向上が見られた…が俺のPCではパフォーマンス変わらん謎

  23.  @neetsdkasu #
    @neetsdkasu

    まぁパイザ上で少しアップするのならサブミッしてもよいのかもしれなくもないが…(10%アップくらいじゃスコア上がらなさそうだが…)

  24.  @neetsdkasu #
    @neetsdkasu

    やはりスコア増えなかった…
    paiza.jp/logic_summoner…

  25.  @neetsdkasu #
    @neetsdkasu

    手の限りを尽くした感が出てきた

  26.  @neetsdkasu #
    @neetsdkasu

    クリック消しモード謎のバグがあってマイナススコアが膨らむ…!?

  27.  @neetsdkasu #
    @neetsdkasu

    No Animationモードだとスコア計算の仕方に問題があるのか…これは厳しい

  28.  @neetsdkasu #
    @neetsdkasu

    クリック消し関係ねーなこれ

  29.  @neetsdkasu #
    @neetsdkasu

    いや、違うかクリック消し固有か

  30.  @neetsdkasu #
    @neetsdkasu

    修正した

  31.  @neetsdkasu #

    マジ

  32.  @neetsdkasu #

    俺持ってるのzipだったのでセーフ

    マジ

のTweets | のTweets | のTweets >