JVM

SPECjvm06

JVM

SPECjvm06って何ですか?

java.util.ResourceBundle のキャッシュ

私のマシンで Tomcat を Kaffe で起動すると1分以上かかるのに、Sun JDK で起動すると10数秒。理由を調べると GNU Classpath の java.util.ResourceBundle の読み込みが遅いようだ。ResourceBundle は getBundle() でロードしたバンドルを内部的にキャッシュ…

Struts on Tomcat/Kaffe/GNU Classpath

「Apache Strutsアプリケーション開発入門」(ASIN:4797327790)に添付のサンプルプログラムを Kaffe で動かそうとしても動かない。Tomcat の localhost_log にえらい長いスタックダンプが出ているのでスタックオーバーフローらしい。gnu.xml.pipeline.Validat…

Kaffe/GNU Classpath で日本語を使うには

JVM

知ってる人は知ってることだが知らないとソース読まなきゃわからんので書いておくが、最近の Kaffe(というか GNU Classpath)で日本語をまともに使うには gnu.classpath.nio.charset.provider.iconv プロパティをヌル値以外にしておく必要がある。Kaffe の…

IBM on Apache Harmony

JVM

IBMがVMインタフェースとかのソースをひっそりとcontributionしたらしい。それに加えてテスト用のJ9バイナリ(ソースではない)も一応公開。 http://www-128.ibm.com/developerworks/java/jdk/harmony/

IBM Java 5 Standard Edition Beta Downloads

JVM

http://www-128.ibm.com/developerworks/java/jdk/java5beta/

harmony-dev

JVM

最近の harmony-dev のサマリーは http://planet.classpath.org/ の方に掲載されるので便利だ。

JMP on Kaffe

JVM

JMP は JVMPI を用いているが、最近の Kaffe も JVMPI を提供している。このエントリ http://gnu.wildebeest.org/diary/index.php?p=104 によると2005年7月中旬以降のバージョンで JMP が動くようになったらしい。

Java Memory Profiler

JVM

Java のメモリやその他のプロファイルをリアルタイムで見ることができる JMP (Java Memory Profiler) というツールを使ってみた。環境は Linux。Windowsでも動くらしいが、GTK+が必要。

JavaとC

SPECjvm98の_201_compressをC言語に移植して性能を測定した。移植したソースはここに載せるとマズいと思うので秘密。Javaで書かれたプログラムをCに移植する際に色々とやり方はあると思うが、とりあえずJavaのクラスは構造体とした。compressはオブジェクト…

SPECjvm98

JVM

SPECjvm98 の _201_compress で圧縮解凍してる tar ファイルの中身って SPECjvm98 自身だったんだ……。知らなかった。

SPECjvm98

JVM

そういえば、SPECjvm98のベンチマークプログラムの.classファイルって付属の.javaファイルをコンパイルして生成したものかと思いきや、実は微妙に違っていたりするのがタチが悪い。.javaファイルだけを見て最適化手法を考えているとハマったりする。例えば c…

SPECjvm98 _201_compress ソース解説

JVM

仕事と趣味の関連で Java のベンチマークである compress のソースを読んだので自分用メモ。compress のソースが手元に無いと全く意味不明だろう。単に compress のアルゴリズムを知るだけなら http://www.dogma.net/markn/articles/lzw/lzw.htm が非常にわ…

Open source dynamics

As stefano says - "good ideas and bad code build communities, the other three combinations do not"....Let's build the community without waiting for the discussion to end on the mailing lists and let the committers/community decide on how b…

Planet Classpath

JVM

Harmonyのメーリングリストも面白いけど、Planet Classpathにある情報も役に立つに違いない。関係ないが、IBM東京基礎研のJITコンパイラ書いた人達にHarmonyのこと聞いたら誰も知らなかった。文化圏が違うもんな。

Harmony

JVM

JVMについて語る国際的な場ができた、ということがこれまでのところのHarmonyの最大の貢献か。

Apache Harmony Project

JVM

結局のところ、このプロジェクトが何を目指しているのかが極めて不明瞭なのが一番の問題だろう。PROPOSAL*1によればこのプロジェクトの目的は Apache v2ライセンスの元でJ2SE 5完全互換な実装を作成する。 実行環境(VMとクラスライブラリ)の実装をモジュー…

Tomcat 5 on Kaffe

Tomat 5のクラスタリング関連のコードがなぜかKaffeで動かなくなってしまった。 kaffe-bin: ../../../kaffe/kaffe/kaffevm/soft.c:254: soft_lookupinterfacemethod: Assertion `cls->state >= CSTATE_USABLE' が失敗しました.で落ちる。gdbで調べてみるとor…

Tomcat/Kaffe/FreeBSD

FreeBSD 4.8の上のCVSバージョンのKaffeの上のTomcat 5.0.28が動かなかった直接の原因は、プロパティファイルが読めないことであった。なぜ読めないかを追求していくと、結局は"8859_1"というエンコーディングのバイト列を文字列に変換できていないことが原…

Tomcat on SSS-PC

SSS-PCの上でTomcat 4.1.29/Kaffe 1.1.4が動作しているのだが、日本語がうまく取り扱えない……。KaffeのCVSバージョンを移植するしか。移植と言ってもconfigure.acとMakefile.amを書き換えるのが主な仕事だ。libcについてはUNIXと比較的高い互換性を持ってい…

Tomcat 5/Kaffe/FreeBSD

Linuxの上では動いていたのだが、FreeBSDの上で動かそうとするとBootstrapでいきなりNullPointerExceptionが出て落ちる。プロパティが読めていないくさいが……。

Tomcat 5 on Kaffe

クラスタリングにおけるセッション情報の動的複製がうまく動作しないのは、org.apache.catalina.cluster.tcp.ReplicationValve#invoke()の中で正規表現を用いてフィルタリングしている部分がKaffeで誤動作していることが直接の原因のようだ。フィルタリング…

Tomcat 5 on Kaffe

Tomcat 5.0系列の最新版Tomcat-5.0.28はKaffe-1.1.4では正しく動かないが、KaffeをCVSから引っ張ってくれば動く。しかし、私にとっての問題はクラスタリング機能が正しく動作しないという点だ。起動時に他のマシンからセッション情報を全部取得する機能は動…