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

Javaパフォーマンス

by Scott Oaks, Acroquest Technology株式会社, 寺田 佳央, 牧野 聡
April 2015
Intermediate to advanced
448 pages
6h 47m
Japanese
O'Reilly Japan, Inc.
Content preview from Javaパフォーマンス

12章Java SEのAPIのパフォーマンス

この章では、工夫によってパフォーマンスを上げられるようなJava SEのAPIを取り上げます。JDKにはこのような実装上の詳細な事柄が多数あります。これらの点で実際にパフォーマンスの問題が発生しているのを、筆者は(自分が書いたコードも含めて)何度も見たことがあります。

12.1 バッファー付き入出力

2000年に筆者がJava Performance Groupに参加したちょうどその頃に、筆者の上司がJavaのパフォーマンスに関する最初の書籍を出版しました。当時はバッファー付き入出力が最もホットなトピックの1つでした。それから14年が過ぎて、この話題は時代遅れであり本書で取り上げるには値しないと筆者は思い始めていました。しかし本書に着手した週に、筆者が関係していた2つのプロジェクトで、バッファーのない入出力がパフォーマンスを大きく損ねているバグが同時に発生しました。そして数ヶ月後に本書のサンプルコードを作成している時、筆者は最適化の効果が少ないことに悩んでいました。そこで筆者はようやく、入出力を正しくバッファーしていなかったということに気づきました。

本書でも、バッファー付き入出力のパフォーマンスについて考えてみることにします。InputStream.read()OutputStream.write()の各メソッドでは、1バイト単位で入出力が行われます。アクセス先のリソースにもよりますが、これらのメソッドはとても低速になることがあります。このread()メソッドを使う場合、FileInputStreamはきわめて低速です。データを1バイト読み出すたびに、カーネルへの呼び出しが発生してしまいます。幸運なことにほとんどのオペレーティングシステムでは入出力がバッファーされているため、 ...

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.
Start your free trial

You might also like

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

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

Lara Callender Hogan, 西脇 靖紘, 星野 靖子
初めてのSQL 第3版

初めてのSQL 第3版

Alan Beaulieu, 株式会社クイープ
プログラミングC# 第8版

プログラミングC# 第8版

Ian Griffiths, 木下 哲也, 鈴木 幸敏
Python機械学習クックブック

Python機械学習クックブック

Chris Albon, 中田 秀基

Publisher Resources

ISBN: 9784873117188Other