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版

11章RAM使用量を削減する

11章を読めば以下の問いに答えられるようになる
  • なぜRAMの使用量を減らすべきなのか?
  • NumPyarrayが大量の数字を格納するのに適している理由は?
  • どのようにすれば大量のテキストを効率よくRAM上に格納できるのか?
  • どのようにしたらたった1バイトで1076まで近似的に数えられるか?
  • Bloomフィルタと、それが必要になる理由は?

 RAMは使い切って初めてどれだけ使っているのかを考えるものです。書いたコードがRAMを使い切ってしまうと、その対応に時間を割かなければならないでしょう。1台のマシンに搭載しているRAMにより多くのデータが収まれば、管理しなければならないマシンの数が減ります。また、より大規模なプロジェクトに発展させる余地もできます。RAMを使い切ってしまう理由を知り、効率よく使う方法がわかれば、より大きな問題を扱えるようになるでしょう。本章では、Memory ProfilerとIPython Memory Usageツールを使ってRAM使用量を測定し、さらにオブジェクトをイントロスペクトしてRAM使用量を推測するツールの使い方を紹介します。

 RAMを節約するには、データを圧縮して格納するコンテナを使う方法もあります。本章では、トライという順序付きのツリー構造とDAWGというデータ構造を説明します。これらのデータ構造を使うと、性能をほとんど犠牲にすることなく、1.2GBの文字列をわずか30MBに圧縮できます。さらに、正確さを犠牲にして劇的にRAMを節約する近似カウンタや近似的に集合内の要素であるかどうか調べる方法を説明します。

 RAMの使用量を考えることとは「データには質量がある」とイメージすることです。質量が増えれば、移動に時間がかかります。RAMを節約すれば、データはバスを高速に移動でき、容量に上限のあるキャッシュに収まります。データがRAMに収まらず、ハードディスクやリモートにあるデータクラスタなどの遅い記憶装置に格納すれば、マシンにデータを持ってくるのがはるかに遅くなります。適切なデータ構造を選んで1つのマシンにデータが収まるようにしましょう。NumExprを使って、データの移動量を減らして効率的に計算することで、時間を節約し、一定量の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