タグ

JVMに関するrelax_moreのブックマーク (4)

  • プログラマーs研究所/研究日誌 Javaクラスファイルの中身

    1999/03/30 JAVAのクラスファイルの中身(最終回) お待たせしました。最終回です。 型の表記について JavaVMが内部では型をどのように管理しているか、という話です。 型といっても、booleanやint、Stringなどだけではなく、配列やクラスなどの 複合型もあるので大変です。関数の引数や戻り値もそうです。 JavaVMでは、型を簡略化した文字列であらわしています。例えば、 main の型は "([Ljava/lang/String;)V" とあらわします。 これは、戻り値がvoidで、引数がJava.lang.Stringを1つということを意味します。 雰囲気はつかめると思いますが、詳しく説明する前に少し横道にそれます。 まず、色んな言語の型の書き方について思い出してください。 C/C++ BOOLfoo(int id, CString name) intlis

  • Javaバイトコードメモ(Hishidama's Java ByteCode Memo)

    Javaのソースをコンパイルするとclassファイルが作られるが、その中身はバイトコードと呼ばれる中間形式。 JavaVMがそのバイトコードを解釈して実行する。 classファイルの中身には色々な情報が入っているが、当ページではその中のプログラムに関する部分をメモしている。 逆アセンブル方法 バイトコード(インストラクションコード?)はいわばアセンブリ言語のようなもので、javapやjadを使うとclassファイルから簡単に逆アセンブルすることが出来る。 javapはJDKをインストールすれば使えるし、jadはJDK1.5以降には対応してないっぽいので、素直にjavapを使うのがいいんだろうなー。 C:\sample\classes> javap -c jp/hishidama/sample/Sample C:\sample\classes> javap -c jp.hishidama.s

  • Java 仮想マシン

    ここまで説明してきたクラスファイルが実行時にどのように扱われるか?メモリ上にどのように展開されるか?これらの疑問に答えるためには、まずJava仮想マシン(JVM)の構造を理解する必要があります。 まず、図2.2にJVMの全体の構造を示します。ここに登場する様々なコンポーネントは、一部分はJVMの仕様書で定義されていますが、他の部分は名前だけ、場合によっては名前も載せられていません。この図では、JVM仕様書と現在の実装から、主要なコンポーネントと思われるものを、まとめておきました。では、それぞれのコンポーネントについて、紹介していきましょう。 図2.2 JVM の構造 (1) メモリ領域の構造と役割 JVMを構成するコンポーネントの中でも、特に重要な部分がメモリ領域です。この領域には、その名前が示す通り、JVMが実行中に使用する様々なメモリがまとめられています。図2.3に示すように、その

  • Hotspot VMの基本構造を理解する

    J2EEがミッションクリティカルな分野に適用されるようになり、Javaのパフォーマンスチューニングの重要性はさらに高まっています。パフォーマンスチューニングにはさまざまなパラメータがありますが、中でもJava VMに関連するチューニングの効果は大きいといわれています。稿は、Java VMに関連するチューニング手法を学ぶための前提知識を提供することを目的にしています(編集部)。 Java VMに関連するチューニングを行い、J2EEアプリケーションのパフォーマンスを上げるためには、Java VMについて詳しく知る必要があります。稿は2回に渡ってJava VMの基構造と動作原理を詳細に解説しますが、内容を理解するためにはプログラムがコンピュータ上で動作する基原理とJava VMの基用語を知っている必要があります。Java VMの基用語に関しては、「実行スピードに挑戦するJavaアーキ

    Hotspot VMの基本構造を理解する
  • 1