- - PR -
javaにおける32bitと64bitの違いについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-30 11:24
非常に初歩的な質問で恐縮です。
現在,Windows2003serverR2x64Edition上でのjavaの動作、特にJDBC経由でデータベースに アクセスする点について調べているのですが、Java本体,JDBC,Javaアプリと32bitCPU, 64bitCPUとの関連性についていまひとつ確定的な情報が見つかりません。 当方では、Windows x64Editionに64bit版J2SE5.0をインストールした環境において、 32bit版、64bit版それぞれのJDBCとJavaアプリを用意して実行したところ特に不具合なく 動いています。 Windows x64環境でのJava本体、JDBCドライバ、Javaアプリの関連性についてご存知の 方がいらっしゃいましたらご教示いただけるとありがたいです。 よろしくお願いします。 | ||||
|
投稿日時: 2006-11-30 11:52
JNIを使わない限り、アドレス空間以外はほとんど差がないのでは?
というか、そういったところを吸収するのがVMの仕事なわけで。 | ||||
|
投稿日時: 2006-11-30 13:31
どこかで64bit版VMでは32bit版より扱えるメモリ空間が広い
という話を聞いたけどソースを失念。 32bit版だと2GByte弱ぐらいなんですよね。 | ||||
|
投稿日時: 2006-11-30 13:57
あしゅさん、nagiseさんご回答、ありがとうございます。
>JNIを使わない限り、アドレス空間以外はほとんど差がないのでは? >どこかで64bit版VMでは32bit版より扱えるメモリ空間が広い >という話を聞いたけどソースを失念。 >32bit版だと2GByte弱ぐらいなんですよね。 つまり、Javaの場合は64bit版のJVMだけ用意すれば、JDBCドライバ やアプリは32bit版のまま正常に動作可能ということですね! その場合、32bit版のJDBCドライバやアプリでも64bit版JVMによって 8TBのメモリ空間を使用できるようになるのでしょうか? 質問ばかりですいません。ご存知の方が居られましたらご教示いただける とありがたいです。 よろしくお願いします。 | ||||
|
投稿日時: 2006-11-30 14:09
JDBCの実装がどうなっているか次第でしょう。 完全にJavaVM上で記述されているJDBCドライバならそうでしょうし、 JNIでネイティブ実装されているJDBCドライバだとそうとは言えないでしょうし。 各JDBCドライバのベンダに問い合わせないことにはなんともいえませんね。 Javaのアプリケーションについては、 ピュアJavaである限りは大丈夫だと思いますよ。 一般論としての話ですが。 | ||||
|
投稿日時: 2006-11-30 17:09
JDBCドライバはタイプによって影響の受け方が違います。
Type 1,Type 2はOSに依存するランタイムが必要なので影響があります。 Type 3 はOSの影響は受けない替わりに中継サーバが必要です。 Type 4 はOSの影響は受けません。 参考(Java Solution FAQ > JDBCドライバの種類と使い分けを教えてください) http://www.atmarkit.co.jp/fjava/javafaq/jdbc/jdbc02.html | ||||
|
投稿日時: 2006-12-01 08:33
nagiseさん、ひろ@yaさんご教示ありがとうございます。
参考のwebページを拝見させていただきました。 JDBCドライバが4つのタイプに分かれていることなどまったく知りません でしたので、非常に勉強になりました。 また、Javaの特徴である「Write Once Run Everywhere」の重要性についても 再認識することができました。 32bit環境から64bit環境へのアプリケーション移植においてはPure Javaの 有用性が今まで以上に発揮されることになるのではないかと思いました。 いつか私もこの場でアドバイスができるように知識を深めたいと思います。 |
1