long start = System.currentTimeMilis(); {処理} long end = System.currentTimeMillis(); System.out.println("Calculation Time: " + (end-start)/1000. + " sec");
これは実時間を計測している。
つまり、どのくらいCPUを使ったかとかではなく、現実にかかった時間。
途中で何かのトラブルでCPUをフルに使えなかった場合なんかは、その分時間がかかる。
上の例では単純に計算にかかった時間を表示している。
夜中にバックグラウンドで計算させておいて、朝にいつ計算が終わったのかを知りたいときなんかもある。
そんなときには Date クラスを使う。
Date クラスは非推奨のメソッドがいくつかあるけど、今回の目的にはこれで十分だし、便利。
さっきと同じように、最初と最後に処理をして、計算の開始時刻と終了時刻を timestamp.txt に書き込む。
Date start = new Date(); {処理} Date end = new Date(); try{ BufferedWriter bw = new BufferedWriter(new FileWriter("timestamp.txt")); bw.write("start: " + start); bw.newLine(); bw.write("end: " + end); bw.flush(); bw.close(); } catch(IOException ioe){ ioe.printStackTrace(); }
としておくと、timestamp.txt に開始時刻と終了時刻が
曜日 月 DD HH:MM:SS タイムゾーン YYYYのフォーマットで書き込まれる。
タイムゾーンは、例えば、中央ヨーロッパの夏時間なら CEST と書き込まれる。
0 件のコメント:
コメントを投稿