Macbook Pro を再セットアップ

仕事で使っていたMacbook Proを使用しなくなったので、
クリーンインストールして持って帰っていたのだが、
仕事が忙しくてさっぱり触れてなかったので再インストールした。

【働クリッカー】これが最速だと思います。

能書き

前回再帰関数で0.24sの関数を作成した。

前回の調査でわかってること

  • start()関数を叩くまでタイムは動かない
  • 以下の3変数は上書き出来ない(getterを使った関数)
    • cash
    • items
    • prices
  • 用意されているloop関数は超絶遅い
  • shikakuとprogramming以外は取る必要無し
    • 最速を狙う場合、1秒以内の極僅かな時間で何万work()関数を実行する為
  • if文は出来れば減らしたい
  • for, whileより再帰関数が若干速い?

【働クリッカー】0.25秒達成

試行錯誤の結果

何回かやって得られた感想を箇条書き

  • start関数を叩くまでタイムがスタートしない
    • 初期処理のコストは実質0
    • 関数や変数等の準備を十分行ってから望む事が出来る
  • cash、items、pricesは単なる変数に思えるが上書きできない
    • ES6で実装されたgetterを使っているものと思われる
    • 本気でハックすれば突破出来る?…多分不可能なのだろう
  • 用意されているloop関数は超絶遅い
    • 2番目の引数がms単位でsetIntervalと同じ作りだと思われる
    • 製作者が発表している0.8sですら、1msに1度しか実行できないloop関数では800回程度しか実行出来ない
    • 800回のwork()で1億とか到底無理で、関数内でfor文を回して1000回程度のwork()を叩きまくる糞関数を定義することになる
    • つか、それがまかりとおるなら最初からfor文で回せばよくね?
  • 1秒以内に何万とwork()関数を実行する為、shikakuとprogramming以外は取る必要無し
  • if文は遅い
    • 条件判定式自体のコストはそれほどではないのだが、何万work()を実行する事になるのでその度に調査していては無駄。
  • for、whileと様々なループ文を試してみたが、再帰関数が最速なようだ
    • あくまでElectronで使われているV8のエンジン固有の話だと思われる