↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

わんこ日記 [RDF] YouTubeも始めました→


2004-09-09(Thu) [長年日記]

[Tiger] Java stack traces

Javaのスタックトレースの取り方を解説してくれている。APIで取得するならば

J2SE 1.3以前 (new Throwable()).printStackTrace()

J2SE 1.4 Throwable.getStackTrace()

J2SE 5.0 java.lang.Thread.getStackTrace()

全部のスレッドをとるならばThread.getAllStackTraces()

うごいているJVMのスナップショットを取るならば、SIGQUITか、Ctrl-\ (WindowsならCtrl-Break)が使えるけれど、これらはJVMを-Xrs付きで起動していると無効。

-Xrs付きで起動されていたりハングアップしていてもJ2SE 5.0(Tiger)では、jstackコマンドでスタックトレースを取ることが出来る。

また、JVMが死ぬときにCore以外にhs_err_pid.logをワーキングディレクトリに残してくれる。(これは、J2SE 5.0を利用するときに気を付けないと、連続JVMダウンでDISK fullを招くので、注意しなくっちゃね!!)

[Tiger] Histogram of Java heap

J2SE 5.0(Tiger)で、プロファイラーを噛ませていなくても、ヒープメモリのヒストグラムが、「jmap - Memory Map」コマンドにより表示できる事の紹介

% jmap -hist <pid>

って利用するらしい。

出力サンプルが見たいなぁ〜 I want to see an histogram output sample.

[Tiger] Sizeof for Java

Javaには、いままでSizeofが無くて、「このオブジェクト沢山つくるけど、平気かなぁ」と思いつつ、「やってみるか」でVectorなどに、じゃんじゃん貯めてOutOfMemory Errorでビックリしていた。

J2SE 1.4以前だと、プラットフォームによっては、ウソになるけどなと思いつつ「Sizeof for Java」みたいな方法でオブジェクトのサイズを出していた。

J2SE 5.0(Tiger)からは、java.lang.instrument.Instrument.getObjectSizeで、オブジェクトのサイズが分かる。

また、jmap -histoコマンドでも、オブジェクトのサイズと総量が表示される。

って、解説してくれている。ありがたい。

Sundararajanさん

上に上げた、いつもはJavaOneのセッションを聞いて勉強してきているような、いくつかのJ2SE 5.0(Tiger)の情報が書かれているblogの著者はSundararajanさん。

A. Sundararajan's Weblog - My First blog」によると、J2SE 5.0(Tiger)のdebuggerやツールの開発を行っている人らしい。

さらに、興味があったのでgoogleしてみたら、ホームページは、Sundararajan's Home」で、現在はSun Microsystem Indeaで、開発しているそうです。また、日本にも1年4ヶ月いたそうで、ちょっと日本語もできるいうのが嬉しい!

_ わんこ日記:A. Sundararajanさんより召喚 (2004-12-22(Wed) 00:06)

A. Sundararajanさんより召喚

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索