私は説明できない1つの問題があります。必要であればJavaでのメソッドの実際の実行時間はどのくらいですか、それはどのように依存しますか?
String numberStr = "3151312423412354315";
System.out.println(numberStr + "\n");
System.out.println("Lehman method: ");
long beginTime = System.currentTimeMillis();
System.out.println(Lehman.getFullFactorization(numberStr));
long finishTime = System.currentTimeMillis();
System.out.println((finishTime-beginTime)/1000. + " sec.");
System.out.println();
System.out.println("Lehman method: ");
beginTime = System.currentTimeMillis();
System.out.println(Lehman.getFullFactorization(numberStr));
finishTime = System.currentTimeMillis();
System.out.println((finishTime-beginTime)/1000. + " sec.");
:ここでの主な関数のコードは、文字列形式の素因数のArrayList
を返すLehman.getFullFactorization(...)
方法。ここで
が出力されます。
3151312423412354315
Lehman method:
[5, 67, 24473, 384378815693]
0.149 sec.
Lehman method:
[5, 67, 24473, 384378815693]
0.016 sec.
私はそれを見たとき、私は、驚きました。同じメソッドの2回目の実行が最初のものよりもずっと早いのはなぜですか?最初に、メソッドの最初の実行時に、JVMとそのリソースを実行する時間を計算することは考えましたが、不可能です.JVMが「メイン」メソッドの実行前に開始することは明らかです。
その同じ?つまり、秒はいつもより速いのですか? – sgowd
アレクサンダーは、ので、すべてのユーザーがそれを読むことができ、あなたの名前を変更してください。誰もがキリル文字を読むことはできません;) –