問題タブ [nanotime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
14460 参照

java - Java System.nanoTime()経過時間の大きな違い

私はAndroidウィジェットを使用していて、System.nanoTime()を2回呼び出す間の経過時間をチェックしていますが、その数は膨大です。これで経過時間をどのように測定しますか?それは一瞬の断片であり、代わりにそれ以上のものでなければなりません。ありがとう

0 投票する
4 に答える
23945 参照

java - NanoSecondsを格納するjava.sql.Timestampの方法

java.sql.Timestampコンストラクタは次のようになります。

基本的にミリ秒単位の時間を受け入れ、最後の3桁を抽出してナノにします。したがって、ミリ秒の値が1304135631 421の場合、Timestamp.getnanos()を 421000000として取得します。これは単純な計算です(最後に6つのゼロを追加します)...最適ではないようです。

より良い方法は、ナノ秒単位の時間を受け取り、そこからナノ秒の値を計算するTimestampコンストラクターである可能性があります。

以下のプログラムを実行すると、実際のナノ秒と、タイムスタンプによるナノ秒の計算方法によって返されるナノ秒の違いがわかります。

したがって、タイムスタンプに関するすべての議論は、最大ナノ秒の時間を保存すると言っていますが、それほど正しくないようです。

0 投票する
2 に答える
338 参照

java - System.nanoTime(); に基づいてクロックを遅くします。

に基づいたタイマーがあり、System.nanoTime() それを遅くしたいと考えています。

私はこれを持っています:

wherenowSystem.nanoTime();クラスの早い段階で呼び出されます。

それを遅くするために、私は試しました:

しかし、その後seconds、半分にカットされるという問題に遭遇します。これは望ましくありません。beforeslowが true の場合は画面に 10 秒表示され、slow true の場合は 5 秒表示されますが、これは望ましくありません。

タイマーを半分にカットするのではなく、遅くしたい

一方で、それは私が望むものである時間を遅くします。

現在の時間を半分に減らさずに、どうすれば時間を遅くできますか?

0 投票する
3 に答える
1891 参照

java - Java 仮想マシンを System.nanoTime と同期する

Java 仮想マシンを System.nanoTime () と同期することは理にかなっていますか?

つまり :

  • System.nanoTime () を呼び出し、結果を t1 に入れる
  • AがBにパケットを送る
  • A からのパケットが B で受信されると、B は System.nanoTime() を呼び出し、結果を A に送信します。
  • B からのパケットが A で受信されると、A は System.nanoTime() を呼び出し、結果を t3 に入れ、B からのパケットで受信した時間を t2 に入れる
  • タイムシフト = (t3 - t1) / 2 - t2

System.nanoTime を使用してそれを行うのは正しいですか?

ありがとう !

0 投票する
1 に答える
4084 参照

java - System.nanoTime()を使用して負の経過時間を取得するのはなぜですか?

System.nanoTime()次のコードを使用して、コードの経過時間を測定しようとしています。

そして、私はそのような結果を得る:

なぜ負の値になるのですか?

(OS:windows xp sp3、java:jdk1.6u27)

0 投票する
4 に答える
1840 参照

java - 異なるマシンから得られたSystem.nanoTime()値の比較

2つの異なるマシンでSystem.nanoTime()を呼び出した結果の2つの値を比較するのは正しいですか?System.nanoTime()は、プロセッサに依存するタイムスタンプカウンター(TSC)を使用して、任意の時点に対するナノ秒精度の時間を返すため、私はノーと言います。

私が正しければ、(Javaで)2つの異なるマシンでインスタントをキャプチャし、これらの値を少なくともマイクロ秒の精度またはナノタイムの精度で(安全に)比較する方法はありますか?

System.currentTimeMillis()は、直線的に増加する数のタイムスタンプを返さないため、解決策ではありません。ユーザーまたはNTPなどのサービスは、いつでもシステムクロックを変更でき、時刻は前後に跳ね上がります。

0 投票する
3 に答える
1419 参照

java - System.nanoTime の何が問題になっていますか?

最後にパターンを持つ非常に長い文字列があり</value>、いくつかの関数呼び出しのパフォーマンスをテストしようとしているので、答えを見つけるために次のテストを行いました...しかし、nanoTimeを使用している可能性があると思います間違って?いくら順番を入れ替えても結果が意味をなさないので…

私は以下を取得します:

どの順序で入れ替えても、数値は常に多少同じになります..どうしたの?

java.sun.com Web サイトの FAQ から:

コード内のさまざまなポイント間で System.nanoTime() を使用して経過時間の測定を実行すると、常に正確になります。

また:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#nanoTime ()

0 投票する
1 に答える
80 参照

java - 検索回数が増えるほど検索時間が短くなるのはなぜですか?

私は、シーケンシャルとバイナリの 2 つの異なる検索アルゴリズムにかかる時間を測定する必要がある割り当てを行っています (効率について指摘すると思います)。検索する約 280 語のターゲット リストと、約 1200 語の検索プール リストがあります。両方のファイルを読み取り、その単語を ArrayLists に保存しました。

これまでに実装した順次アルゴリズムに関連するビットは次のとおりです。

この後、比較の回数と経過時間を表示します (ミリ秒単位なので、最初に 100 万で割ります)。

最初のいくつかの数値で返される時間は、約 0.5 ~ 0.7 ミリ秒です。この数値は、0.1 ミリ秒かかる 32 番目のワードまで下方に揺れます。残りの 150 ワードはすべて 0.0 ms かかります。

比較回数と経過時間の間に直接的な相関関係があると予想していました。何がうまくいかないのですか?

余談ですが、compareTo メソッドによって行われた比較の数 (つまり、単語の長さ) が時間に影響を与えている可能性があることに気付きました。結論に達する) さらに下に表示される場合は、まったく時間がかかりません。

0 投票する
2 に答える
555 参照

java - JavaSystem.nanoTimeの経過平均時間はどんどん小さくなっています

プログラミング言語の時刻に問題が発生したのはこれが初めてではありません。基本的に、whileループで関数を呼び出すことにより、関数の実行速度を測定しています。問題は、何らかの理由で、whileループの実行時間が長くなるほど経過時間が短くなり続けることです。誰か説明できますか?以下のコード。

したがって、約1,000回の実行後、経過時間は750kから850kになります。しかし、約100,000回の実行後、経過時間は580kから750kに低下します。継続的な減少は、平均(stats.getMeans())を見ると最もよくわかります。これは、108kループ後の平均が約632kであるのに対し、3kループの平均は約100万です。nanoTimeの代わりにcurrentTimeMillisに切り替えても、何も変わりません。

0 投票する
1 に答える
1663 参照

java - java-system.nanoTime()の実行が遅すぎる

アプリでsystem.nanoTimeを使用しており、開始時刻を基準にして時間を計算しています。
私のアプリは、新しいコンピューターにコピーするまで非常にうまく動作し、その上でナノタイムを使用すると値が遅くなります。

念のため、簡単なアプリを作成しました。
ナノ時間はシステム時間と比較されます。
私の新しいコンピュータを除いて、他のコンピュータでも同じ値を示しています。助言がありますか?

これが私のコードです:最初に私は持っています

毎秒実行されるスレッドをループするよりも:

編集:私はnanoを使用しています。これは、nano時間で発生するtsも処理し、受信したnano時間をログに出力する必要があるためです。