Pythonの高速化に関して数日調査している。チャッターズに訊くだけですけど
訊いてトライして分かった事
ワタクシの∑(1/n) の計算で n = 1 ~ 10億までの計算(Series.py)で最も高速化したものは numbaのjitであった。
JITコンパイラを使う。これが一番やあぁぁぁぁぁぁ。
他にPythonをexe化するツールとして
Pyinstaller, Nuitkaを試した。これはよう分からん。Series.pyのコードではJIT使う設定なのであり、Pyinstaller, NuitkaでコンパイルしたらコンパイルしてさらにJITでコンパイルするってのか。そのせいか、
> Pyinstaller –onfile Series.py という操作(うろ覚え)が時間かかりすぎてクマったクマったシマクラッタ千代子。
なので JITを使わない設定にしてやり直したら、Pyinstallerは高速化せず、Nuitkaは高速化した。うむうむ。とは言っても劇的に高速化したのではない。@jit には叶わぬ。
というわけで数値計算を高速化するのであれば @jit が良い。Pythonコードからexe化しても高速化するにはしてもさほどではない。てな感じであったのであります。
ま~趣味のレベル。高速化が必須ならばC++を初めから使えや
py2exe, cx_Freeze, auto-py-to-exe などもチャッターズが紹介したのだが試さず。
数値計算の高速化は numbaのjitでいいのだわす。ワタクシのばやいには。
しかし、PythonコードをC言語に変換してCでコンパイルして動作させるので高速だあぁぁぁとかいうの。そんなら初めからCで書けやあ!! どや。
待て待て。TypeScriptでトランスパイルって知ったぞ。トランスコンパイルを縮めてトランスパイルだ。これはTypeScriptで書いたスクリプト・コードをJava Scriptに変換してJava環境で動作させるというものらしい。つーか、その本は図書館にあったので例題は全部見た。
だがワタクシはJava Script使わないのでね。えーえー。
そこではなくてコンピュータ言語の一つを別のコンピュータ言語に変換して、という手法はどのぐらい流行っているのかしら。知らんけど。
コンピュータ言語だけではないなあ。FPGAでの回路記述にVHDLという言語とverilog-HDLという言語があるのだけど、これも相互に変換可能な気がする・・・そういう製品でマトモなものがあるのかは知らないが2000年代終盤ではトラ技で見たぞ。ま~完成度は低くて手動で修正するのが多々あったけどなあ。
そういえば日本語を英語に変換するツールもあるらしいなあ(笑) 逆もあるぞの(笑)
自然言語も異種言語でシームレスに変換が可能になって人類にとっての言葉の壁が極めて低く・薄くなるのはいいこっちゃであるぞの。
言葉を一種類使えれば世界中の人々と話が出来る、うむ。すっげらしーーーー!!
コンピュータ言語を一つ覚えれば他の言語に変換して使える、スッゲらし― !!
そういう世界は実現しないと思うワタクシである
posted by toinohni at 12:52| 東京 ☁|
Comment(0)
|
ソフト系雑学
|
|