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

ハイパフォーマンスPython

by Micha Gorelick, Ian Ozsvald, 相川 愛三
November 2015
Intermediate to advanced
360 pages
6h 16m
Japanese
O'Reilly Japan, Inc.
Content preview from ハイパフォーマンスPython

7章Cにコンパイルする

本章を読めば以下の問いに答えられるようになる
  • どうすればPythonのコードを低水準コードとして実行できるか?
  • JITコンパイラとAOTコンパイラの違いは何か?
  • コンパイルによってPythonよりも高速化できる処理にはどんなものがあるか?
  • データ型の注釈をつけると、なぜコンパイルされたPythonコードが高速化できるのか?
  • CやFortranを使って、どのようにモジュールを書くのか?
  • CやFortranのライブラリを、どのようにPythonで使うのか?

コードを高速化するもっとも簡単な方法は、処理を減らすことです。すでに最良のアルゴリズムを選択し、処理するデータ量を減らしているのなら、実行する命令数を減らすもっとも簡単な方法は、コードを機械語にまでコンパイルすることです。

Pythonにはさまざまなコンパイラの選択肢があります。CythonやShed Skin、PythranのようなCに基づくコンパイラ、NumbaのようなLLVMに基づくコンパイラ、組み込みの実行時(Just-In-Time:JIT)コンパイラを内蔵する仮想マシンであるPyPyなどがあります。どれを採用するかは、コード変更の必要性と開発チームの方向性のバランスをとって決める必要があります。

どのツールを用いても、開発環境になんらかの依存性を持ち込みます。さらにCythonでは新しい種類の言語(PythonとCのハイブリッド)で書く必要があるので、その習得に手間がかかります。Cythonの新しい言語を導入すると、Cを知らないメンバーがついていけず、開発チームの勢いを削ぐことになるかもしれません。ただし、実際には、Cythonを使う人は限定的ですし、よく吟味したコードの一部に用いるだけなので、それほど問題にはならないでしょう。 ...

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 第2版

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

Micha Gorelick, Ian Ozsvald, 中山 光樹
Python機械学習クックブック

Python機械学習クックブック

Chris Albon, 中田 秀基
オブザーバビリティ・エンジニアリング

オブザーバビリティ・エンジニアリング

Charity Majors, Liz Fong-Jones, George Miranda, 大谷 和紀, 山口 能迪
パフォーマンス向上のためのデザイン設計

パフォーマンス向上のためのデザイン設計

Lara Callender Hogan, 西脇 靖紘, 星野 靖子

Publisher Resources

ISBN: 9784873117409Other