- ベストアンサー
マイクロ秒を取得するクラス
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
long micro = System.nanoTime()/1000; ナノ秒の1000分の一は、マイクロ秒のような気がしますが。 これで駄目ですか???
その他の回答 (1)
- ProKaseifu
- ベストアンサー率51% (98/192)
http://www.javainthebox.net/laboratory/J2SE1.5/MiscAPI/ConcurrencyUtils/ConcurrencyUtils3.html 試してはいませんが、このあたりが参考になるかと。 「java マイクロ秒 取得」 その他の情報については上記キーワードで検索すれば ほしい情報が見つかると思います。
関連するQ&A
- 帯域測定プログラムに関する質問
eclipse3.5を使ってプログラムを作っています。 TCPとUDPの2種類で帯域測定プログラムを作りたいのです。 構成としては、送信するバイトと、測定開始時間を指定したら、 自動的に指定した時間に指定したバイトを送信し、帯域測定を 行うプログラムを作りたいのです。 プログラムの引数として、IPアドレス、ポート番号、バイト量、開始時間 というようにしています。 バイトを指定することは簡単にできたのですが、計測時間は、どう指定 すればよいか分かりません。表記の仕方が分かりません。 Ms=System.currentTimeMillis(); System.out.println(Ms); で現在の時間の表記の仕方を確認しても、私にはでたらめな数値にしか見えず、 これでは指定時間を入力することができません。 どなたか、どうやれば指定した時間に測定を開始することができるか わかりませんか?アドバイスお願いします。
- ベストアンサー
- Java
- スピードの差
次のプログラムは userData[0] → userData[1] userData[1] → userData[2] ・・・ ・・・ userData[num-2] → userData[num-1] のように、データを移動するプログラムである。 //■開始時間取得 start = System.currentTimeMillis(); //■移動 for(int i=num-2; i>=0; i--) { userData[i+1] = new UserData(userData[i].name,userData[i].dataPointer); } //■終了時間取得 end = System.currentTimeMillis(); System.out.println("時間:"+(end-start)+"ミリ秒"); numと実行時間はつぎのようになった。 (NetBeans6.0で実行) num 1回目 2回目 3回目 8196 0ms 0ms 0ms 16384 7ms 7ms 7ms 32768 9ms 9ms 8ms 65536 7ms 8ms 14ms 131072 21ms 21ms 24ms 262144 198ms 353ms 212ms 524288 90ms 92ms 91ms このときnum=524288よりnum=262144としたときの方が遅い原因と して何が考えられますか? また、num=1048576としたところ Java Result: 1 となった。実行するにはNetBeansの設定をどのように変えたらよいか?
- 締切済み
- Java
- Javaについて、時間比較で処理をbreakしたいのですが、次のように
Javaについて、時間比較で処理をbreakしたいのですが、次のように作ってみたのですが、endが解決できません。なにか手立てはないでしょうか? do { //何か実行する。 long end = System.currentTimeMillis(); }while((end-start)<=60);
- ベストアンサー
- Java
- calendarクラスの使い方について
時間データ(h:mm:ss)のみの差を求める場合に calendarクラスを利用しましたが 20時32分50秒というデータを cal.get(20,32,50)と記述して以下の プログラムを実行しても ---------結果 差:4838400 となりうまくいきません。 型があってないので、当然といえば当然かもしれませんが・・・ 本当は時刻、分、秒だけのデータで 差:115 と計算し表示させたいのです。 どうやったら、 2004,5,16,20,32,50 ではなく、 20,32,50の情報だけで時間と時間の差を 取得できるでしょうか 他の方法が思いつきませんので どなたかご存知であれば教えてください。 よろしくお願いします ---------プログラムリスト import java.util.Calendar; import java.util.Date; public class TestDate{ public static void main(String[] args){ Calendar cal1 = Calendar.getInstance(); cal1.set(2004,5,16,20,32,50); Date dat = cal1.getTime(); long date1 = dat.getTime(); Calendar cal2 = Calendar.getInstance(); cal2.set(2004,5,16,20,34,45); long date2 = cal2.getTime().getTime(); long distance = (date2 - date1) / (1000); System.out.println("差:"+distance); } } -----------------------------------------
- ベストアンサー
- Java
- 処理速度
プログラムの処理の速度について聞かせてください。 /*SpeedTest*/ import java.io.*; public class SpeedTest{ public static String St(){ String fname = "hello.txt"; try{ BufferedReader br = new BufferedReader(new FileReader(fname)); String str = br.readLine(); }catch (Exception e){ e.printStackTrace(); } return ""; } public static void main(String[] args){ long s = System.currentTimeMillis(); for(int t = 0; t < 50; t++){ SpeedTest.St(); } long g = System.currentTimeMillis(); System.out.println(( g - s ) + " ms." ); } } のプログラムを、コマンドプロンプトで実行すると、「900 ms」なのに対して、JBuilderでは、「100 ms」です。 もちろん、同じマシン上で、J2SDKも同じ、1.4.0です。 なぜ、これほどに処理が違ってくるのでしょうか・・? 環境は、win2kです。 JVM関係なのでしょうか?
- ベストアンサー
- Java
- 時間(ミリ秒を含む)の引き算
現在、VB6でAPI関数timeGetTimeを使って処理時間を測定する プログラムを作成しています。 ミリ秒まで取得・表示しているのですが、ミリ秒を含む時間の引き算方法がわかりません。 以下のような引き算を行い、処理開始・終了時間と経過時間を表示させたいです。 例) 15:13:59.054(終了時間)-15:12:57.112(開始時間) =99:99:99.999(経過時間) どなたか教えて頂けないでしょうか。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- ミリ秒を○時間○分○秒にしたい
http://www.excellenceweb.net/vba/api/what_windows_api.html のページを参考にPC起動時間を取得したいのですが サンプルは単位がミリ秒になっています。 -------------------------------------------------- Declare Function GetTickCount Lib "kernel32.dll" () As Long Sub TEST1() Dim Tickcount As Long 'GetTickCount関数から、起動からの時間が返される Tickcount = GetTickCount() MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています" End Sub -------------------------------------------------- ○時間○分○秒にしたいのですが どうすればいいでしょうか? Formatを使うと思うのですが どういうコードを書けばいいのかわかりません。 ご教授よろしくお願いします。
- ベストアンサー
- Visual Basic
- Windowsの時刻について
私はプログラムの初心者です。 Windowsの正確な時刻をミリ秒レベルで取得するために”GetLocalTime”で取得しようと考えていたのですが、マイクロソフトのmsdnに システムが時刻を生成するのは毎秒 18 回です。したがって、Interval プロパティはミリ秒単位で設定されますが、間隔の真の精度は最大で 18 分の 1 秒です。 との記述があります。 上記であれば、約55.5ミリ秒毎にシステムの時刻を作成しているので、OSはどのようにして”GetLocalTime”で取得できるミリ秒の時間を作成しているのでしょうか。 実際に”GetLocalTime”で取得できるミリ秒での時刻の精度はどれ位なのでしょうか。 ”GetLocalTime”以外にOSの正確な時刻を取得する方法はあるのでしょうか。 宜しくお願い致します。
- 締切済み
- C・C++・C#
お礼
みなさん、回答ありがとうございます。 System.nanoTime()を調べてみたら このメソッドは、経過時間を測定するためだけに使用できる ということでしたので、このメソッドを使用しました。 sunのクラスの説明が書かれたサイトに計測のソースがのっていました。 long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime; これを使うことで、マイクロ秒単位での計測ができたと思います。 アドバイスありがとうございました。