- PR -

javaにおける32bitと64bitの違いについて

1
投稿者投稿内容
エストレア
会議室デビュー日: 2006/11/30
投稿数: 15
投稿日時: 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アプリの関連性についてご存知の
方がいらっしゃいましたらご教示いただけるとありがたいです。
よろしくお願いします。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-11-30 11:52
JNIを使わない限り、アドレス空間以外はほとんど差がないのでは?
というか、そういったところを吸収するのがVMの仕事なわけで。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-30 13:31
どこかで64bit版VMでは32bit版より扱えるメモリ空間が広い
という話を聞いたけどソースを失念。
32bit版だと2GByte弱ぐらいなんですよね。
エストレア
会議室デビュー日: 2006/11/30
投稿数: 15
投稿日時: 2006-11-30 13:57
あしゅさん、nagiseさんご回答、ありがとうございます。

>JNIを使わない限り、アドレス空間以外はほとんど差がないのでは?

>どこかで64bit版VMでは32bit版より扱えるメモリ空間が広い
>という話を聞いたけどソースを失念。
>32bit版だと2GByte弱ぐらいなんですよね。

つまり、Javaの場合は64bit版のJVMだけ用意すれば、JDBCドライバ
やアプリは32bit版のまま正常に動作可能ということですね!
その場合、32bit版のJDBCドライバやアプリでも64bit版JVMによって
8TBのメモリ空間を使用できるようになるのでしょうか?

質問ばかりですいません。ご存知の方が居られましたらご教示いただける
とありがたいです。
よろしくお願いします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-30 14:09
引用:

エストレアさんの書き込み (2006-11-30 13:57) より:
あしゅさん、nagiseさんご回答、ありがとうございます。
つまり、Javaの場合は64bit版のJVMだけ用意すれば、JDBCドライバ
やアプリは32bit版のまま正常に動作可能ということですね!
その場合、32bit版のJDBCドライバやアプリでも64bit版JVMによって
8TBのメモリ空間を使用できるようになるのでしょうか?



JDBCの実装がどうなっているか次第でしょう。
完全にJavaVM上で記述されているJDBCドライバならそうでしょうし、
JNIでネイティブ実装されているJDBCドライバだとそうとは言えないでしょうし。

各JDBCドライバのベンダに問い合わせないことにはなんともいえませんね。

Javaのアプリケーションについては、
ピュアJavaである限りは大丈夫だと思いますよ。

一般論としての話ですが。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 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/11/30
投稿数: 15
投稿日時: 2006-12-01 08:33
nagiseさん、ひろ@yaさんご教示ありがとうございます。

参考のwebページを拝見させていただきました。
JDBCドライバが4つのタイプに分かれていることなどまったく知りません
でしたので、非常に勉強になりました。
また、Javaの特徴である「Write Once Run Everywhere」の重要性についても
再認識することができました。
32bit環境から64bit環境へのアプリケーション移植においてはPure Javaの
有用性が今まで以上に発揮されることになるのではないかと思いました。

いつか私もこの場でアドバイスができるように知識を深めたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)