• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:処理速度)

プログラムの処理速度について

takaP-の回答

  • takaP-
  • ベストアンサー率79% (83/105)
回答No.3

やはり「1.4.1-b21」でしたか・笑 これ遥か昔の1.2よりも処理が遅いんですよ。バグではないかもしれないですけど、それに準ずる不良品VMですわなぁ。 >●自分は、プロンプト上とJBuilderと同じ JDK(1.4.1_03-b2)を使っていると思っていたのに、プロンプト上では、わざわざ、JBuilder 既存の JDK が使われている。 私はJBuilderは使ってませんのでなんとも答えようがないのですが、IDEってのは特定バージョンの実行環境(この場合JREのバージョン)に絞って開発されている事が往々にしてありますから、指定のバージョン以外では動かない可能性が在るわけです。 ですから、強制的にインストール時に実行環境を書きかえるといった事は有り得る話しでしょうね。 もし異なるバージョンで実行したいのならば環境変数を書き直すか、プロンプトで c:\j2sdk1.*.*\bin\java とVMを直接指定して実行するかでしょう。 特に問題がなければそのままJBuilderが設定した環境のままで使用するのが安全なのかもしれません。 それか、JBuilderを捨てるとか・w >●Javaでの開発者のみなさんは、これらの事を知っていて、処理の速い?JDK のバージョンを使っている。 それはどうか分かりません。知っているかどうかはその人次第でしょう。 で、処理の速い物を使うのかどうかですけど、これって開発の本質とは直接は関係ないような気がします。 開発者が幾ら速いVMを使って実行していたとしても、アプリケーションを使用する側が同じく速い実行環境である保証はないわけですし、その逆も然りです。 もちろん、Webアプリ等の環境構築をする場合には、各VMの実行速度の違いなどを調べて最良の選択をする必要はあるでしょうけどね。 で、開発者側がすべき事は速いVMを使って開発する事ではなくて、各VMでの検証ができる時間と環境を持つことだと思います。 ですから「1.4.1-b21 は上記のようなコード処理が遅い」という知識を得た事は重要ですが、だからといって開発者側の実行環境を直ぐに替えなければいけないということに直結する問題ではない気がしますし、IDEとの兼ね合いを考慮すると、特に問題なければいじらない方が無難ではないかと思います。

tosio_s
質問者

補足

わかりやすい、何度も丁寧な回答ありがとうございます。 何度も補足質問しまして、本筋とは離れてしまいましたが、お時間があったら、教えてください。 >「1.4.1-b21 は上記のようなコード処理が遅い」 と言う事は、今回のファイルから読み込むようなコードでは、「処理が遅い」と結果が出ましたが、他の場面では、1.4.1_03と同じ処理速度を出すと言うようなこともあるのですか? >c:\j2sdk1.*.*\bin\java は、実装した結果、実行できて、自分の思う値が取得できました。 しかし、「環境変数を書き直す」で、今の環境変数を見ると、(全て記載すると) %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\j2sdk1.4.1_03\bin と、1.4.1_03 を使っている状態なのですが、やはり、JBuilder 側でうまく、JBuilder既存の(1.4.1-b21 )ものに実装されているのでしょうか? takaP-さんは、JBuilder を使われてないので、質問するのは、間違いとも思うのですが・・・。 結論は、JBuilder を落としてしまえば(バージョンの変更等も)、一番の解決策ですかね・・?(笑 JBuilder のことばかり聞いてすみません・・・。

関連するQ&A

  • 例外処理の有無ついて

    import java.io.*; class A{ public static void main(String args[]){ System.out.println("文字を入力"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String stru = str.toUpperCase(); System.out.println("大文字変換すると" + stru); } } このまま実行すると例外処理をしなくてはいけません。 とエラーになり、 public static void main(String args[])throws IOException{ とすれば正常に動作するのですが、 ではどういうときに例外処理は必要になってくるのでしょうか? なにか決まりがあるのでしょうか?

    • ベストアンサー
    • Java
  • CSV読み込み 文字化け

    失礼いたします。 以前のログを見てエンコードを設定してみたのですが、出力が文字化けします。ローカルファイルを読み込んでコンソール出力しているだけなのですが・・・。 分かる方、よろしくお願いします。 -------------------ソースはここから import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; // import java.io.FileReader; FileReaderからInputStreamReaderに変更済み import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class ReadCSV { public static void main(String[] args) { try { File csv = new File("C:\\AP.csv"); // BufferedReader br = new BufferedReader(new FileReader(csv)); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(csv),"EUC_JP")); // BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(csv),"MS932")); while (br.ready()) { String line = br.readLine(); StringTokenizer st = new StringTokenizer(line, ","); while (st.hasMoreTokens()) { System.out.print(st.nextToken() + "\t"); } System.out.println(); } br.close(); } catch (FileNotFoundException e) { キャッチ処理 }

    • ベストアンサー
    • Java
  • プログラムの組み合わせ方

    java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 {  public static void main(String[] args) throws IOException {   System.out.println("名前を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   System.out.println(str + "さん、こんにちは!");  } } このプログラムを、 import java.io.*; class Sanbai{  public static void main(String[] args) throws IOException {   System.out.println("好きな数を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   int x;   x = Integer.parseInt(str);   System.out.println("あなたの入力した数:" + x);   System.out.println("その3倍の数:" + (x*3));  } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)

    • ベストアンサー
    • Java
  • JavaでString型をChar型に変換するプログラムが分かりません

    JavaでString型をChar型に変換するプログラムが分かりません;; どなかた助けて下さい。 下のプログラムの何がいけないんでしょうか?? いろいろ間違ってるところはあると思うんですが、教えて下さい! import java.io.*; class { public static void main(String args[]) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); StringBuffer moji = new StringBuffer(str1); char nyuu=moji;

  • CSVファイルを列ごとに読み込む処理について

    はじめまして。 よろしくお願いいたします。 プログラミングに興味をもち、JAVAに触れている者です。 現在eclipseでCSVファイルを列ごとに読み込んで表示する、というプログラムを作成しているのですが、コンパイルエラーを除去することができません。 エラー内容は 「処理されない例外の型 FileNotFoundException」 です。 これを見る限りでは読み込むファイルがないということらしいのですが、CSVファイルはちゃんと作成し、作成中のプログラムのファイルがあるディレクトリに置いてあります。 原因を探したいのですが、eclipseのこともjavaのこともよくわかっていないため、まるで見当がつきません。 どうかご教示をお願いいただけませんでしょうか? 以下が作成中のプログラムです。 package ioTest; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import java.io.FileInputStream; public class IOsample { public static void main (String[] args){ BufferedReader br = null; File csv = new File("sampleCSV.csv"); br = new BufferedReader( new InputStreamReader( new FileInputStream(csv))); while (br.ready()){ System.out.println(br.readLine()); } br.close(); } } レベルの低い質問で申し訳ありませんが、なにとぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • Ctrl+Zが入力されると終了するプログラム

    入力された文字をそのまま表示し、[Ctrl]+Zが入力されると終了するプログラムを組んでいるんですがどのように記述すればよいか困っています。アドバイスお願いします。 public static void main(String args[])throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; do{ str = br.readLine(); System.out.println(str); }while(str == null); }

    • ベストアンサー
    • Java
  • 今勉強中のjavaで。わからないことがあります。

    import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?

    • ベストアンサー
    • Java
  • JAVAでエラーがでる。

    JAVA初心者なのですが、下のプログラムは数値を入力して、それを表示させるという簡単なプログラムなのですが、実行すると、 String str = br.readLine(); のbr.readLine();の部分に赤い波線が出て、 「処理されない例外の型 IOException at B.main(B.java:11)」 というエラーが出てしまってこまっています。 参考書のとうりに入力しているのになぜでしょうか? タブやスペースが使えないので見にくくなってしまってすみません。 どなたかJAVAに詳しい方 教えてください。 import java.io.*; public class B { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); System.out.println(num + "が入力されまた。"); } }

    • ベストアンサー
    • Java
  • 例外処理throws

    例外処理ではthrowsかtry~catchを使いますよね。 で、ほとんどの場合はtry~catchを使うようで、ほとんどthrowsを使った例しかなく(まあ、throwsでの例外処理はプログラムが停止してしまうので推奨できないでしょうが)よくわから中区なってしまったので教えてほしいです class Input{ int set(String Toi)throws IOException{ System.out.println(Toi); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int a = Integer.parseInt(str); return a; } } のようにInputクラスを用いて外部からこれを使うために Input input = new Input(); x1 = input.set("x座標を入力"); とすると、「キャッチかスロー宣言をしろ」と怒られてしまいました。(コンパイルエラー) この場合どうすればいいでしょうか?

    • ベストアンサー
    • Java
  • 実行速度を速くする方法

    javaで整数がランダムに記述されたテキストファイルを読み込み、ソートし、テキストファイルに出力させるプログラムを考えています。 テキストファイルからの読み込みはあらかじめ配列を作っておき、scannerで読み込んでいます。 アルゴリズム(バブルソート)を変更せずに実行速度を速くするにはテキストファイルの読み込みを速くしたいのですが、どのように変更すれば良いでしょうか。 ソート数としては10万くらいを考えています。 またプログラムの記述が変なところがあれば教えていただければありがたいです。 import java.io.*; import java.util.Scanner; class test1_4{ public static void main(String args[]){ long start = System.currentTimeMillis(); try{ File filein = new File("./input.txt"); BufferedReader br = new BufferedReader(new FileReader(filein)); int x[] = new int[100000]; br = new BufferedReader(new FileReader(filein)); Scanner scan = new Scanner(new File("./input.txt")); int k=0; while(scan.hasNext()){ x[k] = scan.nextInt(); k++; } br.close(); for(int i=0; i<k; i++){ for(int j=k; j>0; j--){ int z = j-1; if(x[z] > x[j]){ int tmp = x[j]; x[j] = x[z]; x[z] = tmp; } } } try{ File fileout = new File("./output.txt"); BufferedWriter bw = new BufferedWriter(new FileWriter(fileout)); PrintWriter pw = new PrintWriter(bw); for(int i=1; i<k+1; i++){ if(x[i]>0){ pw.print(x[i]); pw.print(" "); if (i%10 == 0) { pw.print("\r\n"); } } } pw.close(); bw.close(); } catch(IOException e){ System.out.println(e); } long stop = System.currentTimeMillis(); System.out.println("実行にかかった" + (stop - start) + " ミリ秒です"); } catch(FileNotFoundException e){ System.out.println(e); } catch(IOException e){ System.out.println(e); } } }