Javaパフォーマンス

全体として何に関する本か、何がどのように詳しく述べられているか

読者としては、JVMJavaAPIが持つさまざまな側面について、パフォーマンスへの影響を知りたいという人々を想定している。 Javaを真に高速なものにするにはJVMそしてJavaAPIに対する深い理解が求められる。本書ではJVMAPIのはたらきについてある程度詳細に解説する。

全12章から構成されている。

2章ではJavaアプリケーションのテストの手法と、Javaでのベンチマーク測定でのよくある間違いについて解説している。3章では、Javaアプリケーションの監視に利用できるツールを紹介している。 4章ではJITコンパイル、5,6章ではガベージコレクションという一般的なチューニング項目について考察しています。残りの章では、Javaプラットフォームのさまざまな側面でのベストプラクティスを紹介しています。

この本を読んで達成したいことは何か

Javaで起きているパフォーマンス問題を解決するための議論ができるようになること

具体的には、各種ツールを利用してJavaパフォーマンス上のボトルネックになっている原因を発見できるようになること。 また、原因に対して適切な対応策を提案できるようになること。

書籍「本を読む本」

全体として何に関する本か

本を読むに値する良書を、知的かつ積極的に読むための規則を述べた書籍
読むことによって、知識を得、理解を深め、すぐれた読書家になりたいと思う人のために書かれた本

何がどのように詳しく述べられているか

第一部では、読書の意味や目的について触れ、読書レベルの概念を述べている。
大きく4つのレベルが存在し、

という読書レベルが存在する。上位レベルの読書は下位レベルの読書を前提とする。
第一部では、上記の読書レベルのうち、1.初級読書と2.点検読書について書かれている。
第二部では、分析読書について書かれている。
第三部では、文学の読み方について書かれている。
第四部では、シントピカル読書について書かれている。


1.「初級読書」

初級読書は、読み書きのまったくできない子供が初歩の読み書きの技術を習得するためのもの。
その文やパラグラフで、何が述べられているかを識別できる必要がある。

2.「点検読書」

点検読書とは、系統立てて拾い読みする技術である。点検読書の目的は、与えられた時間内にできるだけ内容を把握することである。
点検読書には二つのタイプがある。
一つは、組織的な拾い読みまたは下読みである。下読みでは以下の内容を実践する。

  • 1.表題や序文を見ること
  • 2.本の構造を知るために目次を調べること
  • 3.索引を調べること
  • 4.カバーに書いてあるうたい文句を読むこと
  • 5.その本の議論のかなめと思われるいくつかの章をよく見ること
  • 6.ところどころ拾い読みしてみること

もう一つは表面読みである。難解な本にはじめて取り組むときは、とにかく通読することだけを心掛けることである。細かい問題よりも大きな問題を見失わないことである。

点検読書で、読者がしなければならない質問は、

  • どんな種類の本か?
  • 全体として何に関する本か?何がどのように詳しく述べられているか?
  • 著者はどのような構成で概念や知識を展開しているか?

という3つのことである。

3.「分析読書」

分析読書とは、取り組んだ本を完全に自分の血肉と化するまで徹底的に読みぬき、理解を深めるためのものである。
分析読書は以下の3つの段階、15の項目より構成される。

  • 第一段階 - 何についての本であるかを見分ける -
    • 1.種類と主題によって本を分類する
    • 2.その本全体が何に関するものかを、できるだけ簡潔に述べる
    • 3.主要な部分を順序よく関連づけてあげ、その概要を述べる
    • 4.著者が解決しようとしている問題が何であるかを明らかにする
  • 第二段階 - 内容を解釈する -
    • 5.キーワードを見つけ、著者と折り合いをつける
    • 6.重要な文を見つけ著者の主要な命題を把握する
    • 7.一連の文の中に著者の論証を見つける。または、いくつかの文を取り出して、論証を組み立てる
    • 8.著者が解決した問題はどれで、解決していない問題はどれか、見極める。未解決の問題については、解決に失敗したことを、著者が自覚しているかどうかを見定める
  • 第三段階 - 知識は伝達されたか -
    • 9.「概略」と「解釈」を終えないうちは、批評に取り掛からないこと
    • 10.けんか腰の反論はよくない
    • 11.批評的な判断を下すには、十分な根拠をあげて、知識と単なる個人的な意見を、はっきり区別すること
    • 12.著者が知識不足である点を、明らかにすること
    • 13.著者の知識に誤りがある点を、明らかにすること
    • 14.著者が論理性に欠ける点を、明らかにすること
    • 15.著者の分析や説明が不完全である点を、明らかにすること

ただし、上記の分析読書の規則はあくまで理想である。ごくわずかの本を除いて、この理想どおりに本を読む人はまずいないだろう。
と著者は述べている。読書の深さをはかる目安である。

4.「シントピカル読書

シントピカル読書は一つの主題について何冊もの本を相互に関連付けて読むことである。
読者に対する要求度の最も高い積極的な読書法である。点検読書・分析読書はシントピカル読書の準備作業であるといえる。
シントピカル読書は、次の5つの段階が存在する。

  • 1.関連箇所を見つけること
  • 2.著者に折り合いをつけさせること
  • 3.質問を明確にすること
  • 4.論点を定めること
  • 5.主題についての論考を分析すること

シントピカルな理解を追及するうえに、もっとも重要なことは絶対の客観性と公正さであるこということである。弁証法的客観性ともいえる。

本を読む本 (講談社学術文庫)

本を読む本 (講談社学術文庫)

書籍「Javaプログラマのためのアルゴリズムとデータ構造」 点検読書

昨年の年末からプログラミングコンテスト(AtCoder)にはまっている。 アルゴリズムとデータ構造については、この業界に入って1年目の時に学習したが、知識の再整理として 「Javaプログラマのためのアルゴリズムとデータ構造」を読み始めた。 以下は本書籍に関する点検読書である。

全体として何に関する本か、何がどのように詳しく述べられているか

アルゴリズムとデータ構造に関する本である。特にJava言語による実例を交えながら解説している。 読者はJava言語をマスターして一通りプログラムを実装できる方を対象にしている。

全6章から構成されており、

この本を読んで達成したいことは何か

各種アルゴリズムについての再確認し、プログラミングコンテスト(AtCoder)に生かすこと

定本Javaプログラマのためのアルゴリズムとデータ構造

定本Javaプログラマのためのアルゴリズムとデータ構造