Skip to Content
ハイパフォーマンスPython 第2版
book

ハイパフォーマンスPython 第2版

by Micha Gorelick, Ian Ozsvald, 中山 光樹
April 2023
Intermediate to advanced
452 pages
7h 21m
Japanese
O'Reilly Japan, Inc.
Content preview from ハイパフォーマンスPython 第2版

2章プロファイリングしてボトルネックを見つける

2章を読めば以下の問いに答えられるようになる
  • コード上のスピードとメモリのボトルネックをどのように特定するのか?
  • CPUとメモリの使用量をどのように計測するのか?
  • どの程度の深さのプロファイリングをするか?
  • 長時間実行するアプリケーションをどのようにプロファイリングするのか?
  • CPythonの内部では何が起こっているのか?
  • 性能をチューニングしながら、どのようにコードの正しさを維持するのか?

 プロファイリングをすると、ボトルネックを見つけて最小限の労力で最大限に性能を向上できます。わずかな労力で大幅に性能を向上し、リソースの使用量を抑えたいものですが、実際には「必要十分なスピード」と「無駄のないリソース使用量」でコードが実行できることを目標とします。プロファイリングをすると、最小限の労力で最大限に現実的な判断をできます。

 CPUに限らず、計測可能なリソースであればプロファイリングできます。本章では、CPU時間とメモリ(RAM)使用量に着目します。ネットワークとディスク入出力についても同様の計測技法を使えるでしょう。

 プログラムの実行が非常に遅いときや大量のメモリを使っているときには、自分のコードが関わる箇所であればどこでも修正したくなるものです。プロファイリングせずに、自分が問題だと信じる箇所を修正することもできますが、見当違いな箇所に手を入れて修正したつもりになっていることもよくあるので注意が必要です。コードの構造を変更する前に、直観に頼るのではなく、まずプロファイリングして仮説を立てることが重要です。

 プロファイリングは手を抜くのにも役立ちます。まずプロファイリングすることにより、解消すべきボトルネックをすぐに特定できます。その後、必要な性能を得るのに十分なだけ最適化できるのです。プロファイリングせずに最適化すると、長い目で見た場合には労力が増えてしまうこともあります。常にプロファイリングの結果に基づいて行動するようにしましょう。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ハイパフォーマンスPython

ハイパフォーマンスPython

Micha Gorelick, Ian Ozsvald, 相川 愛三
Rクックブック 第2版

Rクックブック 第2版

J.D. Long, Paul Teetor, 大橋 真也, 木下 哲也
Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Mario Casciaro, Luciano Mammino, 武舎 広幸, 阿部 和也
PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志

Publisher Resources

ISBN: 9784873119908Other