高速化の小技

Cython

簡単なコンパイル

Cythonのコンパイル -> 実行を一発でできるようにする

Cythonを使って高速化したはいいけど、毎回コンパイルするのは面倒だ。複数のコードになってしまうのは嫌だ。という場合の小技。

home directoryに .cython.sh という名前で以下を書き込んだシェルスクリプトを作る。

   1 #!/usr/bin/bash
   2 code=$1
   3 cythonize -a -i $code > .cython_log.txt
   4 echo 'import '${code%.pyx}  > .a.py
   5 echo ${code%.pyx}'.main()' >> .a.py
   6 python .a.py "${@:2}"

また、 ~/.bashrc に次の一行を書き足す。

   1 alias cythonsh='sh ~/.cython.sh'

これで .bashrc を有効にすれば、ターミナルで

> cythonsh (cythonコード).pyx 引数

と打つだけでコンパイルから実行まで行われる。

注意点として、コードのバグ等でコンパイルが失敗した場合にも強行実行されてしまうので、Ctrl-Cで手動killしよう。