Skip to Content
Javaパフォーマンス第2版
book

Javaパフォーマンス第2版

by Scott Oaks
March 2025
Intermediate to advanced
450 pages
7h 10m
Japanese
O'Reilly Media, Inc.
Content preview from Javaパフォーマンス第2版

第8章. ネイティブ・メモリーのベストプラクティス

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

ヒープはJavaアプリケーションにおけるメモリの最大のコンシューマであるが、JVMは大量のネイティブ・メモリを割り当てて使用する。そして第7章では、プログラム的な観点からヒープを効率的に管理する方法について説明したが、ヒープの構成と、それがオペレーティング・システムのネイティブ・メモリとどのように相互作用するかは、アプリケーションの全体的なパフォーマンスにおけるもう1つの重要な要素である。Cプログラマはネイティブ・メモリーの一部をCヒープと呼ぶ傾向があるため、ここで用語の衝突がある。 Java中心の世界観に合わせて、Javaヒープを指すにはヒープを使い、Cヒープを含むJVMの非ヒープ・メモリーを指すにはネイティブ・メモリーを使い続けることにする。

この章では、ネイティブ(or演算子)メモリーのこうした側面について議論する。まずJVMのメモリー使用全体の議論から始め、パフォーマンス上の問題がないか、その使用量をモニターする方法を理解することを目的とする。それから、最適なメモリー使用のためにJVMとオペレーティング・システムをチューニングする様々な方法について議論する。

フットプリント

ヒープは(通常)JVMが使用するメモリの最大量を占めるが、JVMは内部演算子にもメモリを使用する。 このヒープ以外のメモリがネイティブ・メモリである。ネイティブ・メモリーは、アプリケーションで(JNI呼び出しによって)確保することもできる。malloc() や同様のメソッドを呼び出したり、NIO(New I/O)を使用したりすることで)。JVMが使用するネイティブ・メモリーとヒープ・メモリーの合計が、アプリケーションのフットプリント合計となる。

演算子から見れば、このフットプリント合計が性能の鍵を握っている。アプリケーションのフットプリントの合計を含むのに十分な物理メモリが利用できない場合、パフォーマンスが低下する可能性がある。ここでの演算子は "かもしれない "である。ネイティブ・メモリの一部は起動時にのみ使用され(インスタンスンスンス、クラスパスにあるJARファイルのロードに関連するメモリ)、そのメモリがスワップアウトされても、必ずしも気づかれることはない。あるJavaプロセスが使用するネイティブ・メモリの一部は、システム上の他のJavaプロセスと共有され、より小さな一部は、システム上の他の種類のプロセスと共有される。 しかし、ほとんどの場合、最適なパフォーマンスを得るためには、すべてのJavaプロセスのフットプリントの合計が、マシンの物理メモリを超えないようにしたい(さらに、他のアプリケーションのために利用可能なメモリを残しておきたい)。

フットプリントの測定

プロセスの合計フットプリントを測定するには、オペレーティングシステム固有のツールを使う必要がある。Unixベースのシステムでは、topps のようなプログラミングが、基本的なレベルでそのデータを表示してくれる。Windowsではperfmon またはVMMapどのツールやプラットフォームを使うにせよ、プロセスの実際の割り当てメモリー(予約メモリーとは異なる)を見る必要がある。

割り当て済みメモリーと予約済みメモリーの区別は、JVM(とすべてのプログラミング)がメモリーを管理する方法の結果として生じる。 パラメーターで指定されるヒープを考えてみよう。 ...

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

スクラム実践者が知るべき97のこと

スクラム実践者が知るべき97のこと

Gunther Verheyen, 吉羽 龍太郎, 原田 騎郎, 永瀬 美穂

Publisher Resources

ISBN: 9798341626010