ニュース
Pythonのパフォーマンスを向上する9つのヒント:他の言語にも適用できるヒントも(1/2 ページ)
Pythonのパフォーマンスは、Javaなどの言語と比べて評価が低い。本稿では、Pythonコードの問題点を見つけて解決し、パフォーマンスを高めるヒントを紹介する。
アプリケーションやWebサイトを最適化する出発点は、コードをしっかりと構築することだ。とはいえ、実際にはコードの90%、多くのスクリプトのほぼ100%ではパフォーマンスを懸念する必要はない。1回だけ実行されるETLスクリプトや夜間に実行されるETLスクリプトではスクリプトの実行にかかる時間が1秒であろうと1分であろうと問題にならない。
だが、アプリケーションの実行が遅く、タスクが完了するまで時間がかかったり、Webページに結果が表示されるのに時間がかかったりして、ユーザーが待たなければないとしたらそれは問題だ。そうだとしても、その原因はコードベースのごく一部にある可能性が高い。
パフォーマンスを最大限に高めるには、パフォーマンスが低下してから考えるのではなく、コーディングを始める前にパフォーマンスについて計画するのが一般的だ。とはいえ、アプリケーションの開発者がコードのパフォーマンスに対処できる方法はたくさんある。
本稿で紹介する9つのヒントはPythonのパフォーマンスを具体的な対象とはしているが、他の言語にも当てはまるヒントもある。
- 適切なデータ型を選ぶ
- 標準の関数、メソッド、ライブラリを知る
- パフォーマンスを重視するライブラリを見つける
- さまざまな内包表記(Comprehension)を理解する
- ジェネレータ(Generator)関数、パターン、式を使う
- 大量データの処理方法を考える
- 問題のあるコードを特定するためにプロファイリングを実行する
- CPythonの代替策を検討する
- 有意義な改善点に注目する
1.適切なデータ型を選ぶ
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Pythonのデータ解析処理を最大16倍高速化するソフトウェア」をNECが無償で提供
NECは、Pythonを使ったデータ解析処理を高速化するソフトウェア「FireDucks」の無償提供を開始した。「pandas」で作成されたプログラムを「CPU全コアの並列活用」と「処理の最小化」で高速化するという。 - PythonのGIL(グローバルインタープリタロック)はソフトウェアにおける世界最大の間違いか
Pythonのマルチスレッドプログラムは、本当の意味で並列には実行されない。代わりに、「並列処理が行われている」という錯覚を生み出す。Pythonの過去の間違いに対処しようと試みる、互換性のないさまざまなPython風ライブラリの作成に、数千時間と数百万ドルが費やされてきた。 - Pythonにおけるimportの危険性とは 全ての運用関係者が知っておくべきPython特有のセキュリティリスク
Pythonのimportステートメントには、開発者や企業が注意する必要があるセキュリティリスクが伴う。これがどのように機能するのか、そしてなぜ簡単な解決策がないのかを解説する。