見出し画像

Python プログラミング言語は遅いことで有名だが、速くするには?思いついたことを挙げてみました

Pythonに限らずプログラミングであれば考え方は同じで、当該処理の中で何が足を引っ張っているかをきちんと見極めることです。しかもプログラミング言語のレベルで見ないで、プログラム自体を把握すれば見えてきます。もちろん、プログラムを把握したことで「どう足掻いても速くできない」と気付くこともあります。

その上でとりあえず思いついたことを挙げてみます。これだけじゃないけどね。

ありがちな所だとループ処理とか。小さな処理を途方も無い回数で動かすよりも、ある程度まとめてループ回数を減らした方が速くなることがあります。ループによるフィードバック遅延って奴です。

あと通信やデバイスといったI/Oに関する部分ですね。何でもかんでもライブラリに頼っていると見えてきませんが、実は自前コードで書いた方が速いこともあります。

あとバッファを増やすと速くなるなんて話もありますが、理詰めで検討しないと無意味なコードを増やすだけになったりします。

上記と似たような方向では、言語上では1文で書けてしまっていても、それが速いとは限らないこととか。プログラム自身がどのように動いているのかを低レベルに把握できていると、自前コードの方が無駄なく動かせて速いこともあります。

割り込み処理を行うプログラムだと、その割り込み回数が多いと全体の処理が重くなります。ですから、減らす方向に持っていっても大丈夫であれば減らした方が良い場合もあります。

古ぅ~いプログラム言語だと「掛け算割り算を使うと遅くなる」なんて言われたこともあって、如何に計算ロジックを減らすかが課題になったケースもあります(主にゲームプログラムで)。

この記事が気に入ったらサポートをしてみませんか?