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

能書き

前回再帰関数で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のエンジン固有の話だと思われる

【SSH】接続元のIPアドレスを取得する

一覧

1
2
3
4
5
6
7
8
9
10
11
# echo $SSH_CONNECTION
153.235.202.182 55544 133.130.113.207 22
# echo $SSH_CONNECTION | awk '{print $1}'
153.235.202.182
# who am i
root pts/3 2016-02-01 22:14 (p1243183-omed01.osaka.ocn.ne.jp)
# who am i | cut -d '(' -f 2 | sed -e 's/)//g'
p1243183-omed01.osaka.ocn.ne.jp

hex2dec for bash

Hex2dec とは

Hex2dec | Windows Sysinternals
https://technet.microsoft.com/ja-jp/sysinternals/bb896736

上記のサイトで公開されていたプチTOOL
これがブックマークに入っていたが、業務では既にMacbookかSSH接続したLinuxの二択しか使っていないので、
Macbookで使えるようにBashで書き直した。

1
2
3
4
5
6
#!/bin/bash
if [ "${1:0:2}" = "0x" ]; then
printf "%d\n" $1
else
printf "0x%x\n" $1
fi

HEXOメモ書き

HEXOとは

色々と存在する静的サイトジェネレータの一つ
様々なものが動的に表示できるこのご時世、
今更静的Webサイトでなにすんだという気もするが、
これが中々どうして良いものだ。

その中でもBlogを速くシンプルに作成出来る事が特徴
公式サイトにも「A fast, simple & powerful blog framework」と紹介されている。